SlideShare a Scribd company logo
Software Engineering Introduction
Dr. Abhineet Anand
Chitkara University
abhineet.anand@chitkara.edu.in
September 2, 2020
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 1 / 37
1 Software Engineering Introduction
Software Engineering Definitions
Characteristics of a software
2 Software Engineering - Layered technology
Quality focus
Process
Methods
Tools
3 Software Process Framework
4 Generic Process Model
5 Prescriptive Process Models
The Waterfall Model
Incremental Process model
RAD model
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 2 / 37
Software Engineering Introduction
Computer software is a product or program code developed by
software engineers.
The applications of computer software are: Telecommunication,
military, medical sciences, online shopping, office products, IT
industry etc.
A Software consists of data and the related documents.
The software is the key element in all computer based systems and
products.
The main purpose behind software engineering is to give a framework
for building a software with best quality.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 3 / 37
Software Engineering Definitions
The establishment and use of sound engineering principles in order to
obtain economical software that is reliable and works efficiently on
real machines.
Software engineering is a systematic and disciplined approach towards
the development of the software operation and maintenance.
Software engineering is an engineering branch associated with the
development of software product using well-defined scientific
principles, methods and procedures.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 4 / 37
Characteristics of a software
Software should achieve a good quality in design and meet all the
specifications of the customer.
Software does not wear out i.e. it does not lose the material.
Software should be inherently complex.
Software must be efficient i.e. the ability of the software to use
system resources in an effective and efficient manner.
Software must be integral i.e. it must prevent from unauthorized
access to the software or data.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 5 / 37
Software engineering - Layered technology
Software engineering is a fully layered technology.
To develop a software, we need to go from one layer to another.
All these layers are related to each other and each layer demands the
fulfillment of the previous layer.
Figure: Software Engineering Layers
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 6 / 37
Quality focus
The characteristics of good quality software are:
Correctness of the functions required to be performed by the software.
Maintainability of the software.
Integrity i.e. providing security so that the unauthorized user cannot
access information or data.
Usability i.e. the efforts required to use or operate the software.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 7 / 37
Process
It is the base layer or foundation layer for the software engineering.
The software process is the key to keep all levels together.
It defines a framework that includes different activities and tasks.
In short, it covers all activities, actions and tasks required to be
carried out for software development.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 8 / 37
Methods
The method provides the answers of all ’how-to’ that are asked during
the process.
It provides the technical way to implement the software.
It includes collection of tasks starting from communication,
requirement analysis, analysis and design modelling, program
construction, testing and support.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 9 / 37
Methods
The software engineering tool is an automated support for the
software development.
The tools are integrated i.e the information created by one tool can
be used by the other tool.
For example: The Microsoft publisher can be used as a web
designing tool.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 10 / 37
Software Process Framework
The process of framework defines a small set of activities that are
applicable to all types of projects.
The software process framework is a collection of task sets.
Task sets consist of a collection of small work tasks, project
milestones, work productivity and software quality assurance points.
Figure: Software process Framework
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 11 / 37
Umbrella activities
Software project tracking and control
1 In this activity, the developing team accesses project plan and compares
it with the predefined schedule.
2 If these project plans do not match with the predefined schedule, then
the required actions are taken to maintain the schedule.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 12 / 37
Risk management
Risk is an event that may or may not occur.
If the event occurs, then it causes some unwanted outcome. Hence,
proper risk management is required.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 13 / 37
Software Quality Assurance (SQA)
SQA is the planned and systematic pattern of activities which are
required to give a guarantee of software quality.
For example, during the software development meetings are
conducted at every stage of development to find out the defects and
suggest improvements to produce good quality software.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 14 / 37
Formal Technical Reviews (FTR)
FTR is a meeting conducted by the technical staff.
The motive of the meeting is to detect quality problems and suggest
improvements.
The technical person focuses on the quality of the software from the
customer point of view.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 15 / 37
Measurement
Measurement consists of the effort required to measure the software.
The software cannot be measured directly. It is measured by direct
and indirect measures.
Direct measures like cost, lines of code, size of software etc.
Indirect measures such as quality of software which is measured by
some other factor. Hence, it is an indirect measure of software.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 16 / 37
Software Configuration Management (SCM)
It manages the effect of change throughout the software process.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 17 / 37
Reusability management
It defines the criteria for reuse the product.
The quality of software is good when the components of the software
are developed for certain application and are useful for developing
other applications.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 18 / 37
Work product preparation and production
It consists of the activities that are needed to create the documents,
forms, lists, logs and user manuals for developing a software.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 19 / 37
Generic Process Model
A software process is a collection of various activities.
There are five generic process framework activities:
Communication: The software development starts with the
communication between customer and developer.
Planning:It consists of complete estimation, scheduling for project
development and tracking.
Modeling: Modeling consists of complete requirement analysis and the
design of the project like algorithm, flowchart etc.
Construction: Construction consists of code generation and the testing
part.
Deployment: Deployment step consists of delivering the product to the
customer and take feedback from them.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 20 / 37
Prescriptive Process Models
The following framework activities are carried out irrespective of the
process model chosen by the organization.
Communication
Planning
Modeling
Construction
Deployment
The name ’prescriptive’ is given because the model prescribes a set of
activities, actions, tasks, quality assurance and change the mechanism
for every project.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 21 / 37
Prescriptive Process Models
There are three types of prescriptive process models. They are:
The Waterfall Model
Incremental Process model
RAD model
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 22 / 37
The Waterfall Model
The waterfall model is also called as ’Linear sequential model’ or
’Classic life cycle model’.
In this model, each phase is fully completed before the beginning of
the next phase.
This model is used for the small projects.
In this model, feedback is taken after each phase to ensure that the
project is on the right path.
Testing part starts only after the development is complete.
Figure: Waterfall Model
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 23 / 37
An alternative design
An alternative design for ’linear sequential model’ is as follows:
Figure: The Linear Sequential Model
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 24 / 37
Advantages of waterfall model
Advantages of waterfall model
The waterfall model is simple and easy to understand, implement, and
use.
All the requirements are known at the beginning of the project, hence
it is easy to manage.
It avoids overlapping of phases because each phase is completed at
once.
This model works for small projects because the requirements are
understood very well.
This model is preferred for those projects where the quality is more
important as compared to the cost of the project.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 25 / 37
Disadvantages of the waterfall model
Disadvantages of waterfall model
This model is not good for complex and object oriented projects. It is a
poor model for long projects.
The problems with this model are uncovered, until the software testing.
The amount of risk is high.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 26 / 37
Incremental Process model
The incremental model combines the elements of waterfall model and
they are applied in an iterative fashion.
The first increment in this model is generally a core product.
Each increment builds the product and submits it to the customer for
any suggested modifications.
The next increment implements on the customer’s suggestions and
add additional requirements in the previous increment.
This process is repeated until the product is finished. For example, the
word-processing software is developed using the incremental model.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 27 / 37
Advantages of incremental model
Advantages of incremental model
This model is flexible because the cost of development is low and initial
product delivery is faster.
It is easier to test and debug during the smaller iteration.
The working software generates quickly and early during the software
life cycle.
The customers can respond to its functionalities after every increment.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 28 / 37
Disadvantages of the incremental model
Disadvantages of the incremental model
The cost of the final product may cross the cost estimated initially.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is broken
into small increments.
The demands of customer for the additional functionalities after every
increment causes problem during the system architecture.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 29 / 37
RAD model
RAD is a Rapid Application Development model.
Using the RAD model, software product is developed in a short period
of time.
The initial activity starts with the communication between customer
and developer.
Planning depends upon the initial requirements and then the
requirements are divided into groups.
Planning is more important to work together on different modules.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 30 / 37
The RAD model consist of following phases:
The RAD model consist of following phases:
Business Modeling
Data modeling
The customers can respond to its functionalities after every increment.
Process modeling
Application generation
Testing and turnover
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 31 / 37
Business Modeling
The cost of the final product may cross the cost estimated initially.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is broken
into small increments.
The demands of customer for the additional functionalities after every
increment causes problem during the system architecture.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 32 / 37
Data modeling
The information in the business modeling phase is refined into the set
of objects and it is essential for the business.
The attributes of each object are identified and define the relationship
between objects.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 33 / 37
Process modeling
The data objects defined in the data modeling phase are changed to
fulfil the information flow to implement the business model.
The process description is created for adding, modifying, deleting or
retrieving a data object.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 34 / 37
Application generation
In the application generation phase, the actual system is built.
To construct the software the automated tools are used.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 35 / 37
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 are
fully tested. Hence, most of the programming components are already
tested.
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 36 / 37
RAD Model
Figure: RAD Model
Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 37 / 37

More Related Content

PDF
Correctness
PDF
IRJET- How Artificial Intelligence Accelerates Software Development
PDF
Software engineering unit 1
PDF
“Scrumbear” framework for solving traditional scrum model problems
PDF
Software Metrics for Identifying Software Size in Software Development Projects
PDF
Chapter 5 software design
PDF
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...
PPTX
Lecture 04 Software Metrics and Estimation
Correctness
IRJET- How Artificial Intelligence Accelerates Software Development
Software engineering unit 1
“Scrumbear” framework for solving traditional scrum model problems
Software Metrics for Identifying Software Size in Software Development Projects
Chapter 5 software design
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...
Lecture 04 Software Metrics and Estimation

What's hot (19)

PDF
Iv2515741577
PPT
Software System Engineering - Chapter 2
PDF
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
PPTX
Software Engineering Unit 1
PDF
PDF
Software engineering lecture notes
PPTX
Ch3-Software Engineering 9
PPT
Introduction to Software Engineering
PPT
Software engineering introduction
PDF
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
PPTX
14 software technical_metrics
PDF
Relational Analysis of Software Developer’s Quality Assures
PPTX
Software Product and Software Process
PDF
An Innovative Research on Software Development Life Cycle Model
PPTX
Quality and productivity factors
PDF
software engineering
PPT
Planning in Software Projects
PPTX
Software Engineering
PDF
A PROCESS QUALITY IMPROVEMENT MECHANISM FOR REDUCING THE RISK OF CI ENVIRONMENT
Iv2515741577
Software System Engineering - Chapter 2
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
Software Engineering Unit 1
Software engineering lecture notes
Ch3-Software Engineering 9
Introduction to Software Engineering
Software engineering introduction
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
14 software technical_metrics
Relational Analysis of Software Developer’s Quality Assures
Software Product and Software Process
An Innovative Research on Software Development Life Cycle Model
Quality and productivity factors
software engineering
Planning in Software Projects
Software Engineering
A PROCESS QUALITY IMPROVEMENT MECHANISM FOR REDUCING THE RISK OF CI ENVIRONMENT
Ad

Similar to Software Engineering Introduction (20)

PPTX
SOFTWARE ENGINEERING FOR BEGINNERS UNIT 1.pptx
PPTX
Lecture-1,2-Introduction to SE.pptx
PPTX
Software Engineering - Introduction to software engineering
PDF
SE UNIT-1 Revised.pdf
PPTX
software engineering basics and .definition
PPT
Intoduction to software engineering part 2
PPTX
UNIT1-Introduction to Software and Software Engineering.pptx
PDF
SE notes by k. adisesha
PPTX
Software Engineering Unit 1 PowerPoint presentation For AKTU University
PDF
Software engineering BCA programming it is simple manufacturer was in to a ho...
PPTX
S.E Lec #1.pptx
PPTX
Introduction to Software Engineering and Models pptx
PDF
Software Engineering Basics.pdf
PPT
1. Introduction to Software Engineering and Software Process.ppt
PPTX
Software engineering ppt it will be useful for the people
PDF
lecture notes on Introduction to Software Engineering CSC 209 .pdf
DOCX
Notes of Software engineering and Project Management
PDF
Introduction of software engineering
PDF
Chapter 1 Introduction to Software Engineering and Process Models.pdf
SOFTWARE ENGINEERING FOR BEGINNERS UNIT 1.pptx
Lecture-1,2-Introduction to SE.pptx
Software Engineering - Introduction to software engineering
SE UNIT-1 Revised.pdf
software engineering basics and .definition
Intoduction to software engineering part 2
UNIT1-Introduction to Software and Software Engineering.pptx
SE notes by k. adisesha
Software Engineering Unit 1 PowerPoint presentation For AKTU University
Software engineering BCA programming it is simple manufacturer was in to a ho...
S.E Lec #1.pptx
Introduction to Software Engineering and Models pptx
Software Engineering Basics.pdf
1. Introduction to Software Engineering and Software Process.ppt
Software engineering ppt it will be useful for the people
lecture notes on Introduction to Software Engineering CSC 209 .pdf
Notes of Software engineering and Project Management
Introduction of software engineering
Chapter 1 Introduction to Software Engineering and Process Models.pdf
Ad

More from Dr. Abhineet Anand (12)

PDF
Function in C
PPTX
Key concept
PDF
C language preliminaries
PDF
Finite automata
PDF
Introduction
PDF
Micro program
PDF
Memory organization
PDF
Instruction, interrupts & io processing
PDF
Instruction code
Function in C
Key concept
C language preliminaries
Finite automata
Introduction
Micro program
Memory organization
Instruction, interrupts & io processing
Instruction code

Recently uploaded (20)

PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
01-Introduction-to-Information-Management.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Classroom Observation Tools for Teachers
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
Institutional Correction lecture only . . .
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
01-Introduction-to-Information-Management.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Abdominal Access Techniques with Prof. Dr. R K Mishra
Classroom Observation Tools for Teachers
202450812 BayCHI UCSC-SV 20250812 v17.pptx
STATICS OF THE RIGID BODIES Hibbelers.pdf
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Complications of Minimal Access Surgery at WLH
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
Institutional Correction lecture only . . .
Supply Chain Operations Speaking Notes -ICLT Program
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
Anesthesia in Laparoscopic Surgery in India
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
102 student loan defaulters named and shamed – Is someone you know on the list?
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf

Software Engineering Introduction

  • 1. Software Engineering Introduction Dr. Abhineet Anand Chitkara University abhineet.anand@chitkara.edu.in September 2, 2020 Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 1 / 37
  • 2. 1 Software Engineering Introduction Software Engineering Definitions Characteristics of a software 2 Software Engineering - Layered technology Quality focus Process Methods Tools 3 Software Process Framework 4 Generic Process Model 5 Prescriptive Process Models The Waterfall Model Incremental Process model RAD model Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 2 / 37
  • 3. Software Engineering Introduction Computer software is a product or program code developed by software engineers. The applications of computer software are: Telecommunication, military, medical sciences, online shopping, office products, IT industry etc. A Software consists of data and the related documents. The software is the key element in all computer based systems and products. The main purpose behind software engineering is to give a framework for building a software with best quality. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 3 / 37
  • 4. Software Engineering Definitions The establishment and use of sound engineering principles in order to obtain economical software that is reliable and works efficiently on real machines. Software engineering is a systematic and disciplined approach towards the development of the software operation and maintenance. Software engineering is an engineering branch associated with the development of software product using well-defined scientific principles, methods and procedures. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 4 / 37
  • 5. Characteristics of a software Software should achieve a good quality in design and meet all the specifications of the customer. Software does not wear out i.e. it does not lose the material. Software should be inherently complex. Software must be efficient i.e. the ability of the software to use system resources in an effective and efficient manner. Software must be integral i.e. it must prevent from unauthorized access to the software or data. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 5 / 37
  • 6. Software engineering - Layered technology Software engineering is a fully layered technology. To develop a software, we need to go from one layer to another. All these layers are related to each other and each layer demands the fulfillment of the previous layer. Figure: Software Engineering Layers Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 6 / 37
  • 7. Quality focus The characteristics of good quality software are: Correctness of the functions required to be performed by the software. Maintainability of the software. Integrity i.e. providing security so that the unauthorized user cannot access information or data. Usability i.e. the efforts required to use or operate the software. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 7 / 37
  • 8. Process It is the base layer or foundation layer for the software engineering. The software process is the key to keep all levels together. It defines a framework that includes different activities and tasks. In short, it covers all activities, actions and tasks required to be carried out for software development. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 8 / 37
  • 9. Methods The method provides the answers of all ’how-to’ that are asked during the process. It provides the technical way to implement the software. It includes collection of tasks starting from communication, requirement analysis, analysis and design modelling, program construction, testing and support. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 9 / 37
  • 10. Methods The software engineering tool is an automated support for the software development. The tools are integrated i.e the information created by one tool can be used by the other tool. For example: The Microsoft publisher can be used as a web designing tool. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 10 / 37
  • 11. Software Process Framework The process of framework defines a small set of activities that are applicable to all types of projects. The software process framework is a collection of task sets. Task sets consist of a collection of small work tasks, project milestones, work productivity and software quality assurance points. Figure: Software process Framework Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 11 / 37
  • 12. Umbrella activities Software project tracking and control 1 In this activity, the developing team accesses project plan and compares it with the predefined schedule. 2 If these project plans do not match with the predefined schedule, then the required actions are taken to maintain the schedule. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 12 / 37
  • 13. Risk management Risk is an event that may or may not occur. If the event occurs, then it causes some unwanted outcome. Hence, proper risk management is required. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 13 / 37
  • 14. Software Quality Assurance (SQA) SQA is the planned and systematic pattern of activities which are required to give a guarantee of software quality. For example, during the software development meetings are conducted at every stage of development to find out the defects and suggest improvements to produce good quality software. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 14 / 37
  • 15. Formal Technical Reviews (FTR) FTR is a meeting conducted by the technical staff. The motive of the meeting is to detect quality problems and suggest improvements. The technical person focuses on the quality of the software from the customer point of view. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 15 / 37
  • 16. Measurement Measurement consists of the effort required to measure the software. The software cannot be measured directly. It is measured by direct and indirect measures. Direct measures like cost, lines of code, size of software etc. Indirect measures such as quality of software which is measured by some other factor. Hence, it is an indirect measure of software. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 16 / 37
  • 17. Software Configuration Management (SCM) It manages the effect of change throughout the software process. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 17 / 37
  • 18. Reusability management It defines the criteria for reuse the product. The quality of software is good when the components of the software are developed for certain application and are useful for developing other applications. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 18 / 37
  • 19. Work product preparation and production It consists of the activities that are needed to create the documents, forms, lists, logs and user manuals for developing a software. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 19 / 37
  • 20. Generic Process Model A software process is a collection of various activities. There are five generic process framework activities: Communication: The software development starts with the communication between customer and developer. Planning:It consists of complete estimation, scheduling for project development and tracking. Modeling: Modeling consists of complete requirement analysis and the design of the project like algorithm, flowchart etc. Construction: Construction consists of code generation and the testing part. Deployment: Deployment step consists of delivering the product to the customer and take feedback from them. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 20 / 37
  • 21. Prescriptive Process Models The following framework activities are carried out irrespective of the process model chosen by the organization. Communication Planning Modeling Construction Deployment The name ’prescriptive’ is given because the model prescribes a set of activities, actions, tasks, quality assurance and change the mechanism for every project. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 21 / 37
  • 22. Prescriptive Process Models There are three types of prescriptive process models. They are: The Waterfall Model Incremental Process model RAD model Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 22 / 37
  • 23. The Waterfall Model The waterfall model is also called as ’Linear sequential model’ or ’Classic life cycle model’. In this model, each phase is fully completed before the beginning of the next phase. This model is used for the small projects. In this model, feedback is taken after each phase to ensure that the project is on the right path. Testing part starts only after the development is complete. Figure: Waterfall Model Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 23 / 37
  • 24. An alternative design An alternative design for ’linear sequential model’ is as follows: Figure: The Linear Sequential Model Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 24 / 37
  • 25. Advantages of waterfall model Advantages of waterfall model The waterfall model is simple and easy to understand, implement, and use. All the requirements are known at the beginning of the project, hence it is easy to manage. It avoids overlapping of phases because each phase is completed at once. This model works for small projects because the requirements are understood very well. This model is preferred for those projects where the quality is more important as compared to the cost of the project. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 25 / 37
  • 26. Disadvantages of the waterfall model Disadvantages of waterfall model This model is not good for complex and object oriented projects. It is a poor model for long projects. The problems with this model are uncovered, until the software testing. The amount of risk is high. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 26 / 37
  • 27. Incremental Process model The incremental model combines the elements of waterfall model and they are applied in an iterative fashion. The first increment in this model is generally a core product. Each increment builds the product and submits it to the customer for any suggested modifications. The next increment implements on the customer’s suggestions and add additional requirements in the previous increment. This process is repeated until the product is finished. For example, the word-processing software is developed using the incremental model. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 27 / 37
  • 28. Advantages of incremental model Advantages of incremental model This model is flexible because the cost of development is low and initial product delivery is faster. It is easier to test and debug during the smaller iteration. The working software generates quickly and early during the software life cycle. The customers can respond to its functionalities after every increment. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 28 / 37
  • 29. Disadvantages of the incremental model Disadvantages of the incremental model The cost of the final product may cross the cost estimated initially. This model requires a very clear and complete planning. The planning of design is required before the whole system is broken into small increments. The demands of customer for the additional functionalities after every increment causes problem during the system architecture. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 29 / 37
  • 30. RAD model RAD is a Rapid Application Development model. Using the RAD model, software product is developed in a short period of time. The initial activity starts with the communication between customer and developer. Planning depends upon the initial requirements and then the requirements are divided into groups. Planning is more important to work together on different modules. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 30 / 37
  • 31. The RAD model consist of following phases: The RAD model consist of following phases: Business Modeling Data modeling The customers can respond to its functionalities after every increment. Process modeling Application generation Testing and turnover Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 31 / 37
  • 32. Business Modeling The cost of the final product may cross the cost estimated initially. This model requires a very clear and complete planning. The planning of design is required before the whole system is broken into small increments. The demands of customer for the additional functionalities after every increment causes problem during the system architecture. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 32 / 37
  • 33. Data modeling The information in the business modeling phase is refined into the set of objects and it is essential for the business. The attributes of each object are identified and define the relationship between objects. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 33 / 37
  • 34. Process modeling The data objects defined in the data modeling phase are changed to fulfil the information flow to implement the business model. The process description is created for adding, modifying, deleting or retrieving a data object. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 34 / 37
  • 35. Application generation In the application generation phase, the actual system is built. To construct the software the automated tools are used. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 35 / 37
  • 36. 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 are fully tested. Hence, most of the programming components are already tested. Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 36 / 37
  • 37. RAD Model Figure: RAD Model Dr. Abhineet Anand (CU) Software Engineering September 2, 2020 37 / 37