SE Unit 1_Part 1_compressed
SE Unit 1_Part 1_compressed
UNIT – I
Software Engineering – An Introduction
●
Principal functions of S/w include:
➔
Help in operating and managing computer resources
➔
Serves as an intermediary between organisation &
information
➔
Helps in problem solving by using computer h/w.
●
There are two types of S/ws:
➔
System S/W
➔
Application S/W
Check these Software
Check these Software
Software Enginnering
●
Software Engineering is the process of designing, developing,
testing, and maintaining software.
●
It is a systematic and disciplined approach to software
development that aims to create software that are:
●
High – quality
●
Reliable
●
maintainable
Software Development Process
●
A software process is the set of activities and associated
outcome that produce a software product.
●
Software engineers mostly carry out these activities. These
are four key process activities, which are common to all
software processes.
●
These activities are:
●
Software Specifications: The functionality of the software
and constraints on its operation must be defined.
●
Software Design & Implementation: The software to meet
the requirement must be produced.
●
Software Validation: The software must be validated to
ensure that it does what the customer wants.
●
Software Evolution: The software must evolve to meet
changing client needs.
● Create a Student Profile Page
● Create a Student Profile Page
Salient Features of Software Development
● Create a Student Profile Page
What will
you need ??
Data
Database
s/w
Editor
Prog lang
Software Process
Process ISO Standard
●
ISO standards provide a framework for quality assurance,
development practices, and process improvement to ensure
software reliability and performance.
●
These standards are developed by the International Organization
for Standardization (ISO) and are widely recognized globally.
Process ISO Standard
●
ISO (International Organization for Standardization) is a
worldwide federation of national standards bodies.
●
ISO is a non - governmental organization that comprises standards
bodies from more than 160 countries, with one standards body
representing each member country.
●
For example, the American National Standards Institute represents
the United States.
●
ISO members are national standards organizations that collaborate
in the development and promotion of international standards for
technology, scientific testing processes, working conditions,
societal issues and more.
Process ISO Standard
●
ISO 27000: These security standards define a process for
developing and implementing information security policies and
processes.
●
ISO 17799: This security management standard specifies more
than 100 best practices for business continuity, access control,
asset management and more.
●
ISO 20000 : This ISO standard creates a technical specification
and codifies best practices for IT service management.
●
ISO 12207: This ISO standard creates a consistent lifecycle
management process for all software.
●
ISO 9000: This family of standards defines how organizations can
establish and maintain effective quality assurance systems for
manufacturing and service industries.
Importance of ISO Standards in Software
●
Quality Assurance: Ensures consistent delivery of high-quality software.
●
Global Acceptance: Provides credibility and trust for software products in
international markets.
●
Process Improvement: Helps organizations refine their development and
maintenance practices.
●
Risk Management: Addresses risks related to security, performance, and
compliance.
●
Customer Satisfaction: Enhances the reliability and usability of software,
meeting customer needs.
Characteristics of Software
●
Functionality: Refers to the degree of performance of the software against its
intended purpose.
●
Usability: Refers to the extent to which the software can be used with ease.
●
Efficiency: Refers to the ability of the software to use system resources in the
most effective and efficient manner.
● Maintainability: Refers to the ease with which the modifications can be made
in a software system to extend its functionality, improve its performance, or
correct errors.
●
Portability: Refers to the ease with which software developers can transfer
software from one platform to another, without (or with minimum) changes. In
simple terms, it refers to the ability of software to function properly on
different hardware and software platforms without making any changes in it.
Characteristics of Software
Evolution of Software for Business
●
Software change is inevitable
➔
New requirements emerge when the software is used;
➔
The business environment changes;
➔
Errors must be repaired;
➔
New computers and equipment is added to the system;
➔
The performance or reliability of the system may have to
be improved.
●
A key problem for all organizations is implementing and
managing change to their existing software systems.
Salient Features of Software Development
● There are several factors that impact the quality and
productivity significantly.
● These include:
● Factors relating to project characteristics
● Factors relating to development methods
● Human Factors
Salient Features of Software Development
Salient Features of Software Development
● Factors relating to project characteristics:
➔ Complexity
➔ Sequential nature of work
➔ Accomodate for h/w deficiencies
➔ Performance requirements
➔ Available time
Salient Features of Software Development
● Factors relating to development methods
➔ Level of technology
➔ Problem understanding
➔ Appropriate notations
➔ Change control
● Human factors
➔ Technical Competence
➔ Ability to work in team
➔ Communication
➔ Motivation
Software Development Life Cycle Models
Software Development Life Cycle
Software Development Life Cycle Models
Software Development Life Cycle Models
The Waterfall Model
● The Waterfall Model was the first Process Model to be introduced.
● The Waterfall model is the earliest SDLC approach that was used for
software development.
●
The whole process of software development is divided into separate
phases.
● The outcome of one phase acts as the input for the next phase
sequentially.
Advantages: Waterfall Model
●
Before the next phase of development, each phase must be
completed
●
Suited for smaller projects where requirements are well defined
● They should perform quality assurance test (Verification and
Validation) before completing each stage
● Elaborate documentation is done at every phase of the software's
development cycle
● Project is completely dependent on project team with minimum
client intervention
●
Any changes in software is made during the process of the
development
Limitations: Waterfall Model
●
Error can be fixed only during the phase
● It is not desirable for complex project where requirement
changes frequently
● Testing period comes quite late in the developmental process
●
Documentation occupies a lot of time of developers and testers
● Clients valuable feedback cannot be included with ongoing
development phase
● Small changes or errors that arise in the completed software
may cause a lot of problems
The “V” Model
●
It is a recognized standard for development of IT systems.
● It lays down
● What is to be done
●
How it is to be done
● What tools to be used
●
It has three levels
● S/w Lifecycle Process Model
● Methods to be used
●
Tools requirement
The “V” Model
●
The “V” model is structured into 4 sub – models as:
●
Project Management (PM) – comprises plans, monitoring, control
and cost management.
●
Software Development (SD) – develop total IT system or s/w
●
Quality Assurance (QA) – quality requirements, test cases, criteria,
examination
●
Configuration Management (CM) – system to manage changes.
The Prototype Model
●
The prototype model allows users to interact and experiment with the
working representation of product.
●
By seeing the prototype model, users are able to better able to realize
what the real system.
●
The prototype is refined till the users are reasonably satisfied.
●
Two approaches to prototyping models:
●
Throw Away Prototyping
●
Evolutionary Prototyping
The Prototype Model
●
Throw Away Prototyping – It is a prototype to help in determing the
software requirement specification and then discarded.
●
Evolutionary Prototyping – the prototype is actually used as
specifications for the design purpose. It has better speed and
accuracy.
The Prototype Model: Advantages
●
More effort can be placed in creating actual software.
●
S/w created by using user feedback
●
Greater chance of s/w being acceptable
●
Unfavourable features or over designing can be avoided