You are on page 1of 82

Subject: Software Engineering

Module Number: I

Module Name: Introduction to Software Engineering

Version Code: SE2


Released Date: 30-Aug-
Introduction To Software Engineering

AIM:
To equip students with fundamentals of software Engineering

2
Introduction To Software Engineering

Objectives:

After completing this chapter, you should able to:


• Describe various methods involved in designing a software

• Explain the process of software evolution

• Illustrate the methods and steps which are taken while designing the software

• Describe the steps involved in SDLC

• Explain the all models of software development

3
Introduction To Software Engineering

Learning Outcomes:

At the end of this chapter, you are expected to:


• Explain categories of methods involved while designing a software

• Categorize the different stages of software development life cycle

• Elaborate the needs of software engineering

• Explain about all the SDLC models

4
Introduction To Software Engineering

Contents
• Introduction
• Software Components
• Characteristics
• Issues
• Need of Software Life Cycle Models
• Phases, Advantages and Disadvantages
• Software Life Cycle Models
• Waterfall
• iterative
• Spiral
• Protyping
5
• Comparison of different models
Introduction To Software Engineering

What is S/W Engineering ?


The seminal definition:
[Software engineering is] the establishment and use of sound engineering principles in order to
obtain economically software that is reliable and works efficiently on real machines.

The IEEE definition:


Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software; that is, the application of engineering
to software. (2) The study of approaches as in (1). [IEEE 93]

6
Introduction To Software Engineering

Need of S/W Engineering ?

• Software engineering is necessary to become able to build software on time, on budget, within
specification while minimizing defects, managing quality, cost, time, complexity, verifiability,
maintainability, availability, reliability, dependability, performance, security, usability, and other
attributes of software.

• The majority of the costs are the costs of changing the software after it has gone into use.

• The objective of SE is able to create reliable and trustworthy systems and software in terms of
economically and quickly.

7
Introduction To Software Engineering

What is software?
Software is:
1. Instructions (computer programs) that when executed provide desired features, function, and
performance.
2. Data structures that enable the programs to adequately manipulate information and (3)
documentation that describes the operation and use of the programs.

Characteristics of Software :
• Software is developed or engineered, it is not manufactured in the classical sense.

• Software doesn't "wear out." [use or be used until useless]

• Although the industry is moving toward component-based construction, most software continues
to be custom-built.

8
Introduction To Software Engineering

Software Application domain


Today, seven broad categories of computer software present continuing challenges for software
engineers:
• System Software

• Application Software

• Engineering / Scientific Software

• Embedded Software

• Product line software

• Web applications

• Artificial Intelligence software


9
Introduction To Software Engineering

Concept of Legacy Software

• Thousands of computer programs fall into one of the category from seven broad application
domains.

• Some of these are state of-the-art software—just released to individuals, industry, and
government. But other programs are older, in some cases much older.

• These older programs—often referred to as legacy software.

• Legacy [Inheritance] software systems were developed decades ago and have been continually
modified to meet changes in business requirements and computing platforms. The production of
such systems is causing headaches for large organizations who find them costly to maintain and
risky to evolve.
10
Introduction To Software Engineering

Software Engineering Layers

Introduction:
• Software Engineering is the application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software; that is, the application of
engineering to software.

• Software engineering is a layered technology. As shown in figure (On Next Slide), any
engineering approach (including software engineering) must rest on an organizational
commitment to quality.

11
A Quality
Introduction To Software
Focus Engineering

Software Engineering Layers

Tools

Software Engineering Layers 12


Introduction To Software Engineering

Software Engineering Layers

Process Layer :
• The foundation for software engineering is the process layer.

• Process defines a framework that must be established for effective delivery of software
engineering technology.
• The software process forms the basis for management control of software projects and
establishes the context in which technical methods are applied, work products (models,
documents, data, reports, forms, etc.) are produced, milestones are established, quality is
ensured, and change is properly managed.

13
Introduction To Software Engineering

Software Engineering Layers

Method Layer :
• Software engineering methods provide the technical solution for building software.

• Methods encompass a broad array of tasks that include:

• Communication

• Requirements analysis

• Design modeling

• Program construction

• Testing and support

• It is a set of basic principles that manage each area of the technology and include modelling
14
activities and other descriptive techniques.
Introduction To Software Engineering

Software Engineering Layers

Tools Layer :
• Software engineering tools provide automated or semi-automated support for the process
and the methods.
• Tools are integrated so that information created by one tool can be used by another.

• A system for the support of software development, called computer-aided software


engineering, is established.

15
Introduction To Software Engineering

The Software Process

Introduction :
• A process is a collection of activities, actions, and tasks that are performed
when some work product is to be created.
• An activity includes to achieve a broad objective (e.g., communication with
stakeholders) and is applied regardless of the application domain, size of the
project, complexity of the effort which software engineering is to be applied.
• An action (e.g., architectural design) encompasses a set of tasks that produce
a major work product (e.g., an architectural design model).
• A task focuses on a small, but well-defined objective (e.g., conducting a unit
test) that produces a tangible outcome. 16
Introduction To Software Engineering

The Software Process

A generic process framework for software engineering encompasses five activities:


• Communication

• Planning

• Modeling

• Construction

• Deployment

17
Introduction To Software Engineering

The Software Process

Communication
• Before any technical work can commence, it is critically important to
communicate and collaborate with the customer or client.
(Stakeholders).
• The objective is to understand stakeholders’ objectives for the project
and to gather requirements that help define software features and
functions.

Ref: Stakeholder: A stakeholder is anyone who has a stake in the


successful outcome of the project—business managers, end users,
software engineers, support people, etc.
18
Introduction To Software Engineering

The Software Process

Planning :
• It defines the software engineering work by describing the technical
tasks to be conducted, the risks that are likely, the resources that will
be required, the work products to be produced, and a work schedule.
• It is similar like a map which guides us about our journey.

19
Introduction To Software Engineering

The Software Process

Modeling:
• It creates a “sketch” of the thing so that you will understand the real
picture—what it will look like architecturally.
• A software engineer does the same thing by creating models to better
understand software requirements and the design that will achieve
those requirements.

Construction:
• This activity combines code generation (either manual or automated)
and the testing that is required to uncover errors in the code.
20
Introduction To Software Engineering

The Software Process

Deployment:
• The software (as a complete entity or as a partially completed
increment) is delivered to the customer who evaluates the delivered
product and provides feedback based on the evaluation.

• These five generic framework activities can be used during the


development of small, simple programs, the creation of large
Web applications, and for the engineering of large, complex
computer-based systems.

• The details of the software process will be quite different in each


case, but the framework activities remain the same. 21
Introduction To Software Engineering

The Software Process

• For many software projects, framework activities are applied iteratively as a


project progresses.

• Each project iteration produces a software increment that provides stakeholders


with a subset of overall software features and functionality.

• As each increment is produced, the software becomes more and more


complete.

• Software engineering process framework activities are complemented by a


number of umbrella activities.

• In general, umbrella activities are applied throughout a software project and


22
help a software team manage and control progress, quality, change, and risk.
Introduction To Software Engineering

The Software Process


• Typical umbrella activities include:
• Software project tracking and control—allows the software team to assess
progress against the project plan and take any necessary action to maintain the
schedule.
• Risk management—assesses risks that may affect the outcome of the project or
the quality of the product.
• Software quality assurance—defines and conducts the activities required to
ensure software quality.
• Technical reviews—assesses software engineering work products in an effort to
uncover and remove errors before they are propagated to the next activity.
• Measurement—defines and collects process, project, and product measures that
assist the team in delivering software that meets stakeholders’ needs; can be used
in conjunction with all other framework and umbrella activities.
23
Introduction To Software Engineering

The Software Process

• Software configuration management—manages the effects of change


throughout the software process.

• Reusability management—defines criteria for work product reuse


(including software components) and establishes mechanisms to
achieve reusable components.

• Work product preparation and production—encompasses the


activities required to create work products such as models, documents,
logs, forms, and lists.

24
Introduction To Software Engineering

Importance of Software Engineering

1. Reduces complexity

• Big software are always complex and difficult to develop. Software engineering has
a great solution to decrease the complexity of any project.
2. To minimize software cost

• Software requires a lot of hard work and software engineers are highly paid
professionals. But in software engineering, programmers plan everything and reduce
all those things that are not required. In turn, cost for software productions becomes
less.

25
Introduction To Software Engineering

Importance of Software Engineering

3. To decrease time
• If you are making big software then you may need to run many code to get the ultimate
running code. This is a very time consuming. So if you are making your software according
to software engineering approach then it will reduce a lot of time.

4. Handling big projects

• Big projects are not made in few days and they require lots of patience. So to handle big
projects without any problem, organization has to go for software engineering approach.

5. Reliable software

• Software should be reliable, means if you have delivered the software, then it should work
for at least it’s given time. 26 26
Introduction To Software Engineering

Importance of Software Engineering

6. Effectiveness

• Effectiveness comes if anything has been made according to the standards. So, Software
becomes more effective in performance with the help of software engineering.

7. Productivity

• If programs fails to meet its standard at any stage, then programmers always improve the
code of software to make sure that software maintains its standards.

27 27
Introduction To Software Engineering

Software Characteristics

• Software is developed: It is not manufactured. It is not something that will automatically


roll out of an assembly line. It ultimately depends on the individual‘s skill and creative
ability.

• Software does not Wear Out: Software is not susceptible to the environmental melodies and it
does not suffer from any effects with time.
• Software is Highly Malleable: In case of software, one can modify the product itself rather
easily without necessary changes.

• Most Software is Created and Not Assembled from Existing Components.

28
Introduction To Software Engineering

Software Components

• Off the shelf Components: Existing software that can be acquired from a third party.

• Full Experience Components: Existing past projects that are similar to the software to be built
for the current project and team members have full experience.

• Partial Experience components: Existing past project that are related to the software to be
built for current project but needs substantial modifications.

• New Components: Software components that must be built by the software team specifically for
the needs of the current project.

29
Introduction To Software Engineering

Software Application

• System software: This class of software manages and controls the internal operations of a
computer system. It is a group of programs, which is responsible for using computer resources
efficiently and effectively. For example, an operating system.

• Real-time software: This class of software observes, analyzes, and controls real world events
as they occur. An example of real-time software is the software used for weather forecasting
that collects and processes parameters like temperature and humidity.
• Business software: This class of software is widely used in areas where management and control
of financial activities is of utmost importance. The fundamental component of a business system
comprises payroll, inventory, and accounting software.

30
Introduction To Software Engineering

Software Application
• Engineering and scientific software:
This class of software has emerged as a powerful tool in the research and development of next
generation technology.

• Artificial intelligence (AI) software:


This class of software is used where the problem-solving technique is non-algorithmic in
nature.

• Web-based software:
This class of software acts as an interface between the user and the Internet.

• Personal computer (PC) software:


This class of software is used for both official and personal use. 31 31
IBM Global Services – Testing Competency

Introduction To Software Engineering

Need of Software Life Cycle Models

For More complex systems:

• More features

• More sophistication leads greater complexity

• More chances of error prone without proper plan/cycle

To overcome the above criteria we need systematic approach which are nothing but software Life
Cycle Models.

32
IBM Global Services – Testing Competency

Introduction To Software Engineering

Various Software Life Cycle Models

Software life cycle models describe various phases of the software cycle and the order in which those
phases are executed. There are tons of models, and many companies adopt their own, but all have
very similar patterns. Some of the models as follows:
• General Model
• Water fall model/ Linear Sequential/ Classic Life Cycle Model
• V-Model
• Rapid Application Development (RAD) model
• Incremental Model
• Spiral Model
• Proto type model
• Fourth Generation (4GT) Techniques
33
IBM Global Services – Testing Competency

Introduction To Software Engineering

General Life Cycle Model

Requirements System Delivery


Coding Testing
Analysis Design

System/information
Engineering

Software life cycle models describe phases of the software cycle and the order in which those phases
are executed. There are tons of models, and many companies adopt their own, but all have very
similar patterns. The general, basic model is shown above.
34
IBM Global Services – Testing Competency

Introduction To Software Engineering

Water fall / Linear Sequential /Classic Life Cycle Model

• The "waterfall model", documented in 1970 by Royce was the first publicly documented life cycle
model. The model was developed to help with the increasing complexity of aerospace products.

• This is the most common and classic of life cycle models, also referred to as a linear- sequential life
cycle model. It is very simple to understand and use. In a waterfall model, each phase must be
completed in its entirety before the next phase can begin. At the end of each phase, a review takes
place to determine if the project is on the right path and whether or not to continue or discard the
project. Unlike what I mentioned in the general model, phases do not overlap in a waterfall model.

• The least flexible and most obsolete of the life cycle models. Well suited to projects that has low risk
in the areas of user interface and performance requirements, but high risk in budget and schedule
predictability and control. 35
IBM Global Services – Testing Competency

Introduction To Software Engineering

Water fall model

Requirements
System design
specification

Coding Testing

Delivery

36
IBM Global Services – Testing Competency

Introduction To Software Engineering

Water fall model (continued)

Advantages

• Simple and easy to use.


• Easy to manage due to the rigidity of the model – each phase has specific
deliverables and a review process.

• Phases are processed and completed one at a time.

• Works well for smaller projects where requirements are very well understood/stable.

37
IBM Global Services – Testing Competency

Introduction To Software Engineering

Water fall model (continued)

Disadvantages

• It’s difficult to respond to changing customer requirements.

• Adjusting scope during the life cycle can kill a project.

• No working software is produced until late during the life cycle.

• High amounts of risk and uncertainty.

• Poor model for complex and object-oriented projects.

• Poor model for long run and ongoing projects.

38
IBM Global Services – Testing Competency

Introduction To Software Engineering

V - model

• Another variant of the waterfall model — the V-model — associates each development activity
with a test or validation at the same level of abstraction. Each development activity builds a
more detailed model of the system than the one before it, and each validation tests a higher
abstraction than its predecessor.
• The least flexible and most obsolete of the life cycle models. Well suited to projects that has
low risk in the areas of user interface and performance requirements, but high risk in budget
and schedule predictability and control.

39
IBM Global Services – Testing Competency

Introduction To Software Engineering

V - model (continued)

Requirements System Text Plan System Testing

Validation (or) Dynamic


Verification (or) Static
Testing

Testing
Integrated Test
High Level Design Integrated Testing
Plan

Module Level Test Module Level


Low level Design
Plan Testing

Code & Unit Test


40
IBM Global Services – Testing Competency

Introduction To Software Engineering

V - model (continued)

Advantages

• Simple and easy to use.

• Each phase has specific deliverables.

• Higher chance of success over the waterfall model due to the development of test
plans early on during the life cycle.

• Works well for small projects where requirements are easily understood.

41
IBM Global Services – Testing Competency

Introduction To Software Engineering

V - model (continued)

Disadvantages

• Very rigid, like the waterfall model.

• Little flexibility and adjusting scope is difficult and expensive.

• Software is developed during the implementation phase, so no early


prototypes of the software are produced.

• Model doesn’t provide a clear path for problems found during testing phases.

42
IBM Global Services – Testing Competency

Introduction To Software Engineering

Incremental/ Iterative model

• This model does not attempt to start with full specification of requirements. Multiple
development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles
are divided up into smaller, more easily managed iterations. Each iteration passes through
the requirements, design, implementation and testing phases.

• A working version of software is produced during the first iteration, so you have working
software early on during the software life cycle. Subsequent iterations build on the initial
software produced during the first iteration.

43
IBM Global Services – Testing Competency

Introduction To Software Engineering

Incremental/ Iterative model

Key Points
• Development and delivery is broken down into increments
• Each increment delivers part of the required functionality
• Requirements are prioritised and the highest priority requirements are included in early
increments
• Once the development of an increment is started, the requirements are frozen
• Requirements for later increments can continue to evolve

44
IBM Global Services – Testing Competency

Introduction To Software Engineering

Incremental/ Iterative model


Increment 1

System Delivery of 1st


Analysis Coding Testing
Design increment
No. of Increments

System Delivery of 2nd


Increment 2 Analysis Coding Testing
Design increment

System Delivery of 3rd


Increment 3 Analysis Coding Testing
Design increment

Time
45
IBM Global Services – Testing Competency

Introduction To Software Engineering

Incremental/ Iterative model (continued)

Advantages
• System functionality is available earlier and customer does not have to wait long.
• Early increments act as a prototype to help elicit requirements for later increments.
• The highest priority functionalities tend to receive more testing.
• More flexible – less costly to change scope and requirements.
• Easier to test and debug during a smaller iteration.

• Easier to manage risk because risky pieces are identified and handled during its iteration.

• Each iteration is an easily managed milestone.

46
IBM Global Services – Testing Competency

Introduction To Software Engineering

Incremental/ Iterative model (continued)

Disadvantages
• Each phase of an iteration is rigid and do not overlap each other.

• Problems may arise pertaining to system architecture because not all requirements are
gathered up front for the entire software life cycle.

47
IBM Global Services – Testing Competency

Introduction To Software Engineering

Prototype model

• In this model, a prototype (an early approximation of a final system or product) is built, tested,
and then reworked as necessary until an acceptable prototype is finally achieved from which
the complete system or product can now be developed.

• Prototype paradigm begins with requirements gathering. Developer and customer meet and
define the overall objectives for the software, identify whatever requirements are known, and
outline areas where further definition is mandatory.

48
IBM Global Services – Testing Competency

Introduction To Software Engineering

Prototype model

• A quick design occurs which leads to the construction of prototype.

• The prototype is evaluated by the customer/user and used to refine the requirements for
the software to be developed.

• Iteration occurs as the prototype is tuned to satisfy the user requirements, while at the
same time enabling developer to better understand what needs to be done.

49
IBM Global Services – Testing Competency

Introduction To Software Engineering

Prototype model

• Prototype used for Begin

Understanding the requirements for the user interface


Examining feasibility of a proposed design approach
• Disadvantages

Users treat the prototype as the solution Listen to Build


Client/User Prototype
A prototype is only a partial solution
Client Evaluates
the prototype

50
IBM Global Services – Testing Competency

Introduction To Software Engineering

Spiral - model

• Presented by Boehm in 1985. The spiral model is focused on risk management.

• This model of development combines the features of the prototyping model and the waterfall
model. The spiral model is favoured for large, expensive, and complicated projects.

• The spiral model is similar to the incremental model with more emphasis placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called
Spirals in this model). The baseline spiral, starting in the planning phase, requirements is
gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral.

51
IBM Global Services – Testing Competency

Introduction To Software Engineering

Spiral - model

• Requirements are gathered during the planning phase. In the risk analysis phase, a process is
undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk
analysis phase.

• Software is produced in the engineering phase, along with testing at the end of the phase. The
evaluation phase allows the customer to evaluate the output of the project to date before the
project continues to the next spiral.

• In the spiral model, the angular component represents progress, and the radius of the spiral
represents cost.

52
Introduction To Software Engineering

Spiral – model (continued)

Risk
Planning
Analysis

Go/No-Go
Decision

Evaluation Development

53 53
IBM Global Services – Testing Competency

Introduction To Software Engineering

Spiral – model (continued)

Advantages

• High amount of risk analysis.

• Risks are explicitly assessed and resolved throughout the process.

• Focus on early error detection and design flaws.

• Good for large and mission-critical projects.

• Software is produced early in the software life cycle.

54
Introduction To Software Engineering

Spiral – model (continued)

Disadvantages

• Can be a costly model to use.

• Risk analysis requires highly specific expertise.

• Project’s success is highly dependent on the risk analysis phase.

• Doesn’t work well for smaller projects.

55
IBM Global Services – Testing Competency

Introduction To Software Engineering

Rapid Application Development (RAD) model

• RAD model makes heavy use of reusable software components with an extremely short
development cycle.
• The RAD is a linear sequential software development process that emphasizes an extremely short
development cycle.
• The RAD software model is a "high speed" adaptation of the linear sequential model in which
rapid development is achieved by using a component-based construction approach.
• Used primarily for information systems applications, the RAD approach encompasses the
following phases:

56
Introduction To Software Engineering

Rapid Application Development (RAD) model

• Business modeling

• Data modeling

• Process modeling

• Application generation

• Testing

RAD process emphasizes the reuse of many of the program components that have already been tested,
and it minimizes the testing and development time.

57
Introduction To Software Engineering

Comparison of SDLC model

58
Introduction To Software Engineering

Self assignment Questions


1. The first step in Software Development Life Cycle (SDLC) is

a. Preliminary Analysis and investigation

b. System Design

c. Coding

d. System Testing

Answer : Preliminary Analysis and investigation

59
Introduction To Software Engineering

Self assignment Questions


2. The detailed study of existing system is referred to as

a. System Analysis

b. System planning

c. Feasibility Study

d. Design DFD

Answer : System Analysis

60
Introduction To Software Engineering

Self assignment Questions


3. Which of the following does the system analysis and design phase of Software Development Life

Cycle (SDLC) include?

a. Parallel Run

b. Sizing

c. Specification Freeze

d. All of these

Answer : All of these

61
Introduction To Software Engineering

Self assignment Questions


4. Prototyping aims at

a. End user understanding and approval

b. Program logic

c. Planning of dataflow organization

d. None of these

Answer : End user understanding and approval

62
Introduction To Software Engineering

Self assignment Questions


5. What is prototyping?

a. Mini model of proposed system

b. mini model of existing system

c. Working model of the existing system

d. None of these

Answer : Mini model of proposed system

63
Introduction To Software Engineering

Self assignment Questions


6. Which one of the following is not a stage of SDLC?

a. System analysis

b. Problem identification

c. System design

d. Feasibility study

Answer : Problem identification

64
Introduction To Software Engineering

Self assignment Questions


7. Which step of SDLC project termination could be done?

a. Design phase

b. System maintenance phase

c. Feasibility study phase

d. Coding phase

Answer : Feasibility study phase

65
Introduction To Software Engineering

Self assignment Questions


8. Which one of the following is a true statement about SDLC?

a. Not iterative

b. Sequentially ordered set of phases

c. Not possible to complete some activity in one phase in parallel with those of another phase

d. Circular process

Answer : Not iterative

66
Introduction To Software Engineering

Self assignment Questions


9. Which one is an important part of SDLC?

a. Requirement analysis

b. Design

c. Coding

d. Testing

Answer : Requirement analysis

67
Introduction To Software Engineering

Self assignment Questions


10. What is the noise in terms of software development?

a. Irrelevant statement in SRS document

b. Writing over specific requirements

c. Contradictory requirements in SRS document

d. None of the above

Answer : Irrelevant statement in SRS document

68
Introduction To Software Engineering

Self assignment Questions


11. Which of the following excepts cost estimation from SRS document?

a. Project Manager

b. User documentation writer

c. Software developers

d. Maintenance engineers

Answer : Project Manager

69
Introduction To Software Engineering

Self assignment Questions


12. What are the characteristics of software?

a. Doesn’t wear out

b. Can be custom build or built

c. Developed or engineered

d. All the above

Answer : All the above

70
Introduction To Software Engineering

Self assignment Questions


13. Which type of software do Compiler and editor software come under?

a. System software

b. Application software

c. Scientific software

d. None of the above

Answer : System software

71
Introduction To Software Engineering

Self assignment Questions


14. software is defined as

a. document

b. Data structure

c. instruction

d. All the above

Answer : All the above

72
Introduction To Software Engineering

Self assignment Questions


15. What are the signs under software project troubled?

a. Product scope poorly defined

b. Deadline unrealistic

c. Changes managed poorly

d. All the above

Answer : All the above

73
Introduction To Software Engineering

Self assignment Questions


16. What doesn’t the efficiency of software product include?

a. responsiveness

b. Processing time

c. Memory utilization

d. licensing

Answer : licensing

74
Introduction To Software Engineering

Self assignment Questions


17. Which of these does not account for software failure ?

a. Low expectation

b. Less reliable

c. Increasing supply

d. Increasing demand

Answer : Increasing supply

75
Introduction To Software Engineering

Self assignment Questions


18. What are the good attributes of the software?

a. functionality

b. maintainability

c. A&b

d. None of the above

Answer : A & b

76
Introduction To Software Engineering

Assignment

1. Identify process model and activities for online shopping application.

2. Comparison of different SDLC models.

3. Prepare SRS for online application.

77
Introduction To Software Engineering

Case study

1. How to identify the good or bad software projects?

2. How to identify the SDLC models in the projects?

78
Introduction To Software Engineering

Summary

1. Software evolution is the process of developing a software product using the principles of
software engineering.

2. The programming paradigm is a model for a class of languages that shares a set of common
characteristics.

3. Software design paradigm is a model for a class of problems that share a set of common
characteristics.

4. Waterfall model is also called the classic life cycle model.

5. The spiral development model is a risk driven process model.

79
Introduction To Software Engineering

Document Links

Topics Links
What is Software Engineering https://www.tutorialspoint.com/software_engineering/softwar
e_engineering_tutorial.pdf
Overview – Evolution of Software https://ifs.host.cs.st-andrews.ac.uk/Books/SE7/Presentations/P
DF/ch21.pdf
Software Engineering Paradigms https://web.cs.dal.ca/~hawkey/3130/SEBackground4.pdf
Software Development Life Cycle http://gsl.mit.edu/media/programs/peru-summer-2014/materia
ls/t04-_software_development_life_cycle.pdf

80
Introduction To Software Engineering

Video Links

Topics Links
What is Software Engineering https://www.youtube.com/watch?v=bFmThPwKRGU
Overview – Evolution of Software https://www.youtube.com/watch?v=itF0kpPMF1c
Software Engineering Paradigms https://www.youtube.com/watch?v=Aqn9Kp8NZi0
Software Development Life Cycle https://www.youtube.com/watch?v=wnDsmBit_XQ

81
Introduction To Software Engineering

E-Book Links

Links
1. http://web.firat.edu.tr/mbaykara/softwareengineering.pdf

2. http://dinus.ac.id/repository/docs/ajar/RPL-7th_ed_software_engineering_a_practitioner
s_approach_by_roger_s._pressman_.pdf

3. https://inspirit.net.in/books/academic/Ian%20Sommerville%20Software%20Engineering
,%209th%20Edition%20%20%20%202011.pdf

82

You might also like