[go: up one dir, main page]

0% found this document useful (0 votes)
1 views53 pages

Unit 1 ISE

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 53

CO (Course Outcome)

&
UOs (Unit Outcomes)
CO (a)
Compare various software development process models.
UOs
1a. Define software engineering
1b. Recommend the relevant software solution for the
given problem.
1c. Describe generic framework activity
1d. Select the relevant software process model for the
given problem statement with justification.
2
1.1 Defining Software

• Concept of hardware and software


• In simple terms: Anything that can be stored
electronically is called software.
• (IEEE Definition of software): Software is a
“Collection of computer programs, procedures, rules,
associated documents and concerned data with the
operation of data processing system.”
• Software is created through..
• Where we can see the Software (in terms of
applications)

3
1.2 Software Application Domain

• The application domain is defined by the nature of the


problems being solved or the type of data being
processed.
• They are different in programming language, data
storage, retrieval methods, user interfaces, and other
technical specifications.
 Some important application domains:
 System software
– Concepts and examples
 Application software
– Concepts and example

4
1.2 Software Application Domain

 Embedded software
– Concepts and examples
 Web application software
– Concepts, developed using
– how web application works (fig)
– Characteristics of web app
- Availability - Client driven - Performance
- Responsive - Informational - Customized
- User input - Database access - Data warehousing
- Transaction oriented - Security - Usability
- Reliability - Download - flexibility
5
1.2 Software Application Domain

 AI software
– Concepts and features of AI
– How does AI works
• Neural network
• Machine Learning (ML)
• Deep Learning
• Natural Language Processing (NLP)
• Computer Vision
– Examples of AI software
– Advantages and Disadvantages of AI software

6
1.2 Software Application Domain

 Difference between Program and Software product

Program Software product


- It is usually small in size. - It is large in size.

- It has single developer. - Here, team of developers.

- Author himself is sole user. - Large number of users.

- It lacks proper user interface. - Here, well designed interface.

- It lacks proper documentation. - Here, well documented and user manual


prepared.

- It is ad-hoc development. - It is systematic development.

- No need of systematic methodologies. - Require proper systematic


methodologies.

7
1.3 Software Engineering – A layered approach

• Definition of Software Engineering (SE)


Software Engineering is an engineering discipline
that delivers high quality software at agreed cost & in
planed schedule.
• Need of SE (at least five points)
• (IEEE Definition of Software Engineering)
Software Engineering is the application of a systematic,
disciplined and quantifiable approach to the development,
operation and maintenance of software.

8
1.3 Software Engineering – A layered approach

9
1.3 Software Engineering – A layered approach

10
1.3 Software Engineering – A layered approach
- support below layers
- execute process in time

- ‘how-to’
- create SE environment using
CASE tools
- it includes analysis, design,
testing etc.

- s/w process
- heart of SE
- foundation layer
- Holds layers like GLUE
- define framework activities
- deliver s/w in time

- Focus on quality
- o/p meets with requirements
- manage TQM
- Support SE
1.4 Generic Process Model
• It outlines the activities and tasks involved in developing
software.
• Simplified and abstracted view of the software development
process.
• Provide structured approach.
• Phases of generic model
– Requirement gathering and analysis
– Design
– Implementation
– Testing
– Deployment
– Maintenance
• Some examples of generic process model.
12
1.5 Generic framework activity and Umbrella activity
• Any standard software process model would primarily
consist of two types of activities: A set of framework
activities, which are always applicable to all the projects and
a set of umbrella activities which are non SDLC activities
that are applicable throughout the process.

13
1.5 Generic framework activity and Umbrella activity
• Framework activities
– Communication: between customer and developer

– Planning: determining the project's scope, defining the tasks that


need to be completed, and estimating the time and resources

– Modeling: creating models to clarify requirements, design, and


architecture. i.e. UML, ERD, DFD etc.

– Construction: actual coding and testing

– Deployment: delivering the product to the customer and take


feedback

– Maintenance: ongoing process of fixing bugs, making enhancements,


and improving the performance of the software system
14
1.5 Generic framework activity and Umbrella activity
• Umbrella activities
– Software Project Tracking and Control (PTC)

– Formal Technical Review (FTR)

– Software Quality Assurance (SQA)

– Software Configuration Management (SCM)

– Documentation

– Reusability management

– Estimation

– Risk management
• Umbrella activities help to ensure that software development projects are
completed successfully and that the resulting software meets the required
quality standards.
15
1.6 Software development models
• Concept of software life cycle.

• Software Development Life Cycle (SDLC) is a process used by the


software industry to design, develop and test high quality software,
which meets exact customer’s requirements and completion within
time and cost estimation.
• Need of life cycle models

16
1.6 Software development models
• Different SDLC models:
 Classical waterfall model

 Iterative waterfall model

 Prototyping model

 Evolutionary model

 Spiral model

 RAD (Rapid Application Development) model

 Agile models

17
1.6 Software development models
 Waterfall model
• Proposed by.
• Also called
• Different phases
60
50
40
30
20
10
0

Maintnce
Design

Test
Coding
Req. Sp
Development Phase

18
Waterfall model
 Feasibility study
• Aim
• It is abstract definition of the system
• It includes data collection, processing of data.
• Collected data analyzed for:
– Abstract definition
– Formulation of different solutions
– Analysis of alternative solutions
• Cost / benefit analysis
• Three main issues:
– Technical feasibility
– Economical feasibility
– Operational feasibility
19
Waterfall model
 Requirement Analysis and Specification
• Aim
• Reduce communication gap
• Two main activities
1. Requirements gathering and analysis
– Two activities (Requirement gathering [collect different
requirements from customer] and Requirement Analysis
[analyse collected requirements])
2. Requirements specification
– Organizing SRS
• Requirement engineering

20
Waterfall model
 Design
• Goal of this phase
• Two main approaches:
1. Traditional design
2. Object oriented design
1. Traditional Design
• Two parts
i. Structure analysis:
• detailed structure of the problem is examined.
• Identify the flow of data between processes.
• DFD is used.
21
Waterfall model
ii. Structure design:
• Results of structured analysis are transformed into the software
design.
• Two main activities:
1. Architectural design (High-level design) – Modules and
relationships.
2. Detailed design (Low-level design) –Data structure and
algorithms.

2. Object oriented design


• Objects and their relationships are identified.
• Several tools are used.

22
Waterfall model
 Coding and Unit testing
• Goal of this phase.
• Implementation phase.
• system is being operational (working conditions) at this
phase.
• Simplicity and clarity should be maintained.
• Output of this phase.
 Integration and System testing
• When integration and system testing is performed.
• Goal of this phase.
• Detects errors and maintain quality. 23
Waterfall model
• Three kinds of testing:
i. α– testing
ii. β–testing
iii. Acceptance testing
• Output of this phase.
 Maintenance
• It requires maximum efforts.
• Maintenance needed due to.
• Four types of maintenance
 Corrective maintenance  Perfective maintenance
 Adaptive maintenance  Preventive maintenance
24
Waterfall model
 Advantages of waterfall model
• Simple and easy to understand.
• Clearly defined stages.
• Helps in planning.
• Results are well documented.
• Works well for smaller projects.

Disadvantages of waterfall model


• High risk and uncertainty
• Poor for long projects
• Not good for complex and object oriented projects
• Not good where requirements change frequently
25
Waterfall model
 Applications of waterfall model
• When the requirements are very well known, clear and fixed.
• When environment is stable.
• When product definition is stable.
• When technology is understood.
• When the project is small.

26
1.6 Software development models
 Iterative Waterfall model
• Why there is a need of this model.
• Concept of phase containment of errors.

27
1.6 Software development models
 Incremental process model (Evolutionary
model)
• successive version of waterfall model
• In this model, the system is broken down into several
modules.
• First develop the core product of the system.
• Then by adding new functionalities in successive versions.

28
Incremental model
 Advantages of incremental model
• Each successive version performing more useful.
• Initial product delivery is faster.
• Reducing chance of errors in final product.
• More flexible.
• Chance to experiment with partially developed software.
• Helps finding exact user requirements.
Disadvantages of incremental model
• It requires more planning and design efforts.
• Used for very large problems.
• Cost may exceed.
29
Incremental model
 Applications of incremental model
• When the problem is very large
• When user requirements are not well specified at initial stage.
• When new technology is used in development.

30
1.6 Software development models
 Prototype model
• What is prototype.
• In this model, working prototype is built first.
• Provide crude version of the system.
• Compared to the actual software, a prototype usually have:
– limited functional capabilities
– low reliability
– inefficient performance
• Useful for GUI part of the system.

31
Prototype models

32
Prototype model
• Working of this model using figure description.
• Two types of prototype model:
– Exploratory development prototype model
– Throw away prototype model
 Advantages of prototype model
• New requirements can be accommodate easily.
• Missing functionalities identified quickly.
• Better flexibility in design and development.
• More chance of user satisfaction.
• Quick user feedback is available.

33
Prototype model
 Disadvantages of prototype model
• Usually throw away.
• High cost.
• If user not satisfied with initial prototype, so chance of lose
interest in final product.
• Required participation of customer extensively, it is not
possible every time.
Applications of prototype model
• When there is a need of lot of integrations with end users.
• Generally used in GUI type of development.

34
1.6 Software development models
 Spiral model
• Proposed by Boehm 1986.
• It uses 4GL.

35
Spiral model
• Each loop of the spiral represents a phase of the software
process:
– the innermost loop might be concerned with system feasibility,
– the next loop with system requirements definition,
– the next one with system design, and so on
• It is more flexible compare with other models.
 Four sectors (quadrants)
• 1st Quadrant (Determine objectives)
– Identify objects and their relationships.
– Find alternative solutions.
• 2nd Quadrant (Identify and resolve risks)
– detailed analysis is carried out
– Alternate solutions are evaluated and risks are reduces
36
Spiral model
• 3rd Quadrant (Develop next level product)
– Develop and validate the next level of the produ.
– Resolution of critical operations and technical issues of next
level product are performed.
• 4th Quadrant (Review and Planning [Customer
evaluation])
– In this part, review the results achieved so far.
– Plan the next iteration around the spiral.
• With each iteration around the spiral: progressively more
complete version of the software gets built.
• In spiral model  at any point, Radius represents: cost and
Angular dimension represents: progress of the current
phase.
• At the end, all risks are resolved and software is ready to use.
37
Spiral model
 Advantages of spiral model
• More flexible.
• Improved user satisfaction.
• It provides cohesion between different stages.
• Final product will be more reliable.
Disadvantages of spiral model
• Applicable to large problems only.
• More complex.
• More numbers of documents needed.
• Need of higher expertise.
• High cost. 38
Spiral model
 Applications of spiral model
• Used when medium to high risk projects.
• When users are unsure for their needs.
• When requirements are complex.

 Spiral model can be viewed as a meta model


• It subsumes almost all the life cycle models.
• Single loop of spiral represents Waterfall Model.
• It uses a prototyping approach by first building the prototype.
• Each iteration around the spiral supporting evolutionary model.
• It retains the step-wise approach of the waterfall model. 39
1.7 Agile Development Model
 Agile methodology
• A simple meaning of agile is  ready to move in quick and easy
way.
• Agile methodology is a “step by step” dynamic focused on short-
term visibility but never losing the long-term product goal.
• Divide the project into small phases and make it easily manageable.
• It adopt constant changes via repetitive or iterative approach.
• Concept of ‘Frame’ and working of iteration in agile development.
• At the end of each iteration, a working product with a new feature
has to be delivered.

40
1.7 Agile Development Model
• Most popular and common agile methodology examples
(or frameworks) are:
 Scrum
 Kanban
 XP (eXtreme Programming)
 Dynamic System Development Method (DSDM)
 Feature Driven Development (FDD)
 Adaptive Software Development (ASD)
 Adaptive Project Framework (APF)
 Lean Software Development (LSD)

41
1.7 Agile Development Model
• Agile Principles:
• Agile principles make up the foundation of agile. The agile method
is based on 12 guiding principles, known as agile principles, which
are:

1. Satisfy customers 7. Working software

2. Adapt changes 8. Promote sustainable


development
3. Frequent delivery 9. Continuous attention

4. Work together 10. Simplicity is essential

5. Work in motivated environment 11. Self organization of team

6. Face to face conversation 12. Team approach

42
1.7 Agile Development Model
 Comparison of Agile model v/s Traditional model approach
Traditional model approach Agile approach
- It is process oriented. - It is people oriented.
- In it, project scope and requirements are - Project scope and requirements are
less flexible. more flexible.
- Clear initial requirements. - Creative, innovative and unclear
requirements.
- In this approach, planning is done at the - In it, planning is done iteratively and
beginning. incrementally.
- Focuses on delivering a complete - Focuses on delivering working software
product. or features in small increments.

- It is based on command and control - It is based on leadership and


project management. collaboration project management.
- In general – waterfall, spiral or - In it – evolutionary approach.
prototype approach.
- Does not involve customers - Involvement of customers is continuous.
continuously.
- This approach is better for bigger - This is better for smaller projects.
projects.
- Overall, traditional approach is more - Overall, agile approach is more flexible43
rigid and structured. and adaptable.
1.8 Widely used Agile Model
 eXtreme Programming (XP) model
• Developed by Kent Beck.
• used when customers are constantly changing demands or
requirements, or not sure about system's performance.
• XP is a lightweight, efficient, low-risk, flexible, predictable, scientific,
and fun way to develop a software.
• It advocates “frequent releases” of the product in short development
cycles.
• Keep customer and quality in target.
• Team work is very important in this model.
• The sprint is released in very shorter life cycle (almost in 15-20
days).
44
eXtreme Programming (XP) model
• XP is achieved with:
 Emphasis on continuous feedback from the customer
 Short iterations
 Design and redesign
 Coding and testing frequently
 Eliminating defects early, thus reducing costs
 Keeping the customer involved throughout the development
 Delivering working product to the customer

Explanation of each
phase in fig.

45
eXtreme Programming (XP) model
• The XP model suggests quick release.

• Small releases allow developers to frequently receive feedback,


detect bugs early, and monitor how the product works in production.

 Advantages of XP model
• stable and well-performing systems with minimal debugging.
• Less number of documents needed.
• Results can be derived soon.
 Disadvantages of XP model
• Time consuming.
• Customer involvement is sometime tedious.
• High cost 46
eXtreme Programming (XP) model
 Applications of XP model
• Mainly used for smaller projects.
• Projects involving new technologies and research.

47
Scrum model
• It is a light weight agile process framework.
• Scrum is adaptable, fast, flexible and effective agile framework.
• It focused primarily on ways to manage tasks in team-based
development conditions.
• This model based on an iterative and incremental processes.
• Scrum is characterised by cycles or stages of development,
known as ‘sprints’
• Every day starts with a small 15-minute meeting, called ‘daily
scrum’, which takes the role of synchronising activities and
finding the best way to plan out the working day.

48
Scrum model

• Process of scrum.
• Three different roles and their responsibilities.
1. Scrum master
2. Product owner
3. Scrum team
49
Scrum model
 Advantages of Scrum model
• It is adaptable and flexible.
• Focus on product quality.
• Improve team motivations.
• More chance of customer satisfaction.

 Disadvantages of Scrum model


• Doesn’t work well when more numbers of team members.
• Development team should be well experience.
• Daily meetings sometimes frustrate team members.
• This model is not appropriate for large and complex projects.
50
Scrum model
 Applications of Scrum model
• Scrum model is a versatile framework that can be applied to a
wide range of projects and industries like healthcare, education,
marketing, research etc.
• Used when system have rapidly new changes are needed to be
implementation required.
• Used when there is a requirement of developing new features in
quick time.

51
MCQs

52
MCQs

53
TRUE / FALSE

54

You might also like