Software Engineering
Dr. Priyanka Das
Introduction
• Software is more than just a program code.
• A program is an executable code, which serves some
computational purpose.
• Software is the collection of computer programs,
procedures rules and associated documentation and
data.
• Software is an information transformer producing,
managing, modifying, displaying or transforming
information that can be simple as a single bit or a
complex as a multimedia application.
Software Products
• Software Products:
Software products may be developed for a particular customer or may be
developed for a general market.
• Software products may be:
• Generic
• Bespoke
• What are the attributes of good software?
• Maintainability.
• Dependability
• Efficiency
• Usability
Programs vs Software Products
• Programs are developed by individuals for their personal
use. Small in size, limited functionality.
• Software products have multiple users, good interface,
proper users manual, good documentation support. Large
number of users, systematically designed, carefully
implemented, thoroughly tested.
• Software products not only consist of program code but
also all of the associated documents,i.e., requirement
specification document, design document,test document,
user manual and so on.
Software Engineering Paradigms
•Software Characteristics:
•Software is developed or engineered, it is not
manufactured in the classical manner.
•Software doesn’t “wear out”.
• Although the industry is moving towards
component based assembly, most software
continues to be custom to built.
Software Applications Types
•System Software.
•Real-time Software.
•Business Software.
•Engineering and Scientific Software.
•Embedded Software.
•Personal Computer Software.
•Web-based Software.
•Artificial Intelligence Software.
Software Engineering -A layered
Technology
•Application of a systematic,
disciplined, quantifiable
approach to the development,
operation and maintenance of
software that is, the
application of engineering
software.
Five generic process framework activities
•Communication.
•Planning.
•Modeling.
•Construction.
•Deployment.
SDLC (Software Development Life Cycle)
• Software Development Life Cycle (SDLC) is a process that guides
software development projects from start to finish. It defines tasks
such as planning, design, development, testing, and deployment.
Process Models
• Every software engineering organization should describe
a unique set of framework activities for the software
process it adopts.
• Waterfall Life Cycle Model.
• Iterative Waterfall Life Cycle Model.
• Prototyping Model.
• Incremental Model.
• Spiral Model.
• RAD Model.
Waterfall Life Cycle Model
• It is called classic life cycle or Linear model.
• Requirements are well defined and stable.
• It suggests a systematic, sequential approach to software
development.
• It begins with customer specification of requirements and
progresses.
• Planning.
• Modeling.
• Construction and
• Deployment
Waterfall Model
Advantages
• Easy to understand.
• Each phase has well defined input and output.
• Helps project manger in proper planning of project.
• Provides a templates into which methods of
analysis, design, code and support can be placed
Disadvantages
• One way street.
• It lack overlapping and interactions among phases.
• Model doesn’t support delivery of system in pieces.
Phases of Classical Waterfall Model