Software Engineering (6KS03)
Unit I
Introduction to Software Engineering: Evolving
role of Software. Software crises & myths. Software
engineering.
Software process & process models, Linear
sequential, prototyping, RAD, Evolutionary Product &
Process. Project
WSHH principle, critical
practice.
Book Recommended
Software Engineering, A Practitioner’s Approach
- Pressman Roger. S. TMH. (Strictly 5th
Ed)
Reference Books
R1 Software Engineering Somerville Addison-Wesley (5/e)
R2 Software Engineering Fairly R McGraw Hill
R3 Principles of Software Development
Davis A
McGraw Hill
R4 Software Engineering Shooman, M.L McGraw Hill
management concepts: People, Product, Process,
Project,
Unit – I
Unit – II
Unit – III
&
Unit – IV
Unit – V
Unit – VI
Evolving role of Software
e.g. Older days Programmers use to write & deliver s/w……..
Project planning & Software risks
e.g. Models/ Methods & Risk analysis….
Project Scheduling
e.g. scope/ Estimation/ tools …
Solution Manager (SAP)
System engineering:
Business Process (e.g. Advance), Prototype
Software architecture
Software testing & integration testing
WhiteBox/ BlackBox etc.. Validation
What
is
Software?
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
= Computer Programs + Associated Documents
CHARACTERISTICS OF SOFTWARE
• software is engineered
• software doesn’t wear out
• software is complex
• software is a ‘differentiator’
• software is like an ‘aging
factory’
What
is
Software?
Wear vs. Deterioration
Software Applications
• system software
• real-time software
• business software
• engineering/scientific software
• embedded software
• PC software
• AI software
• WebApps (Web applications)
Types of software
• System software:
Software that provides a platform to other software
such as Microsoft Windows, GNU/Linux, antivirus,
printers, scanners, BIOS, Virtualbox, VMware.
• Application software:
Programs designed for end users like Notepad, Firefox,
Media players.
• Engineering/Scientific software:
Software built with techniques and formulae specific
to specific scientific or engineering field, examples
are MATLAB, AUTOCAD.
Types of software
• Embedded software:
Programs that control machines or devices such as
Traffic light control mechanism, Motorcycle
dashboard display.
• Product-line software:
A group of products sharing common features that are
used to satisfy specific needs of a mission like MS
Office supporting home use, business use, enterprise
use etc.
• Web application software:
Programs that are run on web servers and are
accessed through a web browser, examples are Gmail,
Facebook etc.
Types of software
• Artificial Intelligence software:
Software that is capable of intelligent behavior, like in
Robotics, Game Playing etc.
• Legacy software system:
Software systems that were developed decades ago
which becomes costly and risky to maintain and
evolve.
Software Poses Challenges
How do we ensure the quality of the
software that we produce?
How do we meet growing demand and
still maintain budget control?
How do we upgrade an aging "software
plant?" How do we avoid disastrous time
delays?
How do we successfully institute new
software technologies?
Software Myths (False Belief)
Management Myths:
• Software practitioners follow the book of standards and
procedures for software development.
• If a delay occurs, programmers can be added at any point.
• Outsourcing helps.
Customer Myths:
• General requirements and not a detailed one is needed for
starting programming.
• Software is easy to change.
Developer’s Myths(Practitioner’s Myths):
• Software developing is all about coding.
• Only a finished software can be tested.
• Software engineering has plentiful documentation and will slow
down the process
Chapter 2
The Process
A Layered Technology
tools
methods
process model
a “quality”
focus
Software Engineering
“Software engineering can be defined as systematic and disciplined
engineering approach applied for building and maintaining software.”
It is a layered technology comprising,
• Quality focus:
as its central support element since improving quality of process
and products through quality improvement techniques is the
main focus of an organization.
• Process layer:
provides framework for management of software project.
• Method layer:
includes methods such as communication, design, coding and
other technical aspects for development of software.
• Tools layer:
provides supporting tools for Method and Process layers.
A Common Process Framework
Common process framework
Framework activities
work tasks
work products
milestones & deliverles QA
checkpoints
Umbrella Activities
Software Process Framework
Activities
Umbrella Activities
Process as Problem Solving
The Process Model:
Adaptability
• the framework activities will always be applied
on every project ... BUT
• the tasks (and degree of rigor) for each
activity will vary based on:
-the type of project (an “entry point” to
the model)
-characteristics of the project
-common sense judgment; concurrence
of the project team
The Process Models
Remember
The Linear Model
Iterative Models
1. Linear Sequential Model
2. RAD (Rapid Application Development
Model
Evolutionary Software Process Models:
1. Incremental Model
2. Spiral Model
3. WINWIN Spiral Model
4. Concurrent Development Model
(Component Based Development)
The Incremental Model
Delivers Software in small but usable pieces, each
piece builds on pieces already delivered.
e.g. Word Processing Software…..
The Spiral Model
Product
Enhancemen
t Project
Product
Maintenance
Project
New
Product
Development
Project
Concept
Devmn’t
Project
Project
Entry
Point
axis
Spiral Model
(8SR2)
POINTS TO NOTE:
1) Couples iterative nature
of prototyping & with
controlled systematic
approach
2) Each region is populated
by “Set of tasks” (TASK SET)
3) Spiral model is divided
into
task regions
Task set (regions)
1) Customer communication
2) Planning
3) Risk Analysis
4) Engineering
5) Construction & Release
6) Customer Evaluation (e.g. Feedback)
RAD Model
Still Other Process Models
• Component assembly model—the process to apply when reuse is a
development objective
• Concurrent process model—recognizes that different part of the project
will be at different places in the process
• Formal methods—the process to apply when a mathematical
specification
is to be developed
• Cleanroom software engineering—emphasizes error detection before
testing
The 4 P’s:
The People: The Stakeholders
Software Teams
The People: Team Leaders
The People: Software Team
The Product Scope
The Process
The Project
W5HH Principle
Why is the system being develop?
• This focus on the business reasons and problem statement for
developing the software. It answers if the business purpose justifies the
expenditure of people, cost,time and money.
What will be done?
• It helps team to establish project schedule by identifying key project
task that are required by the customer.
• It mentioned guidelines and principle for determining the tasks that
need to be completed.
When will it be done?
• When the project tasks will be started and when they enter into the
final stage to reach the goal.
W5HH Principle
Who is responsible for a function?
• Establishes roles and responsibility of each team member of software
team.
Where are they organizationally located?
• All roles and responsibilities are not limited to the software team itself,
the customers, users and stakeholders also have responsibilities.
How will be job done technically and managerially?
• Once product scope is established, a technical and management strategy
must be defined for it.
How much of each resource is needed?
• It figures out how much resources necessary to complete the project as
per cx requirement and budget of the project.
THE END…

Software engineering Computer science and engineering unit 1

  • 1.
    Software Engineering (6KS03) UnitI Introduction to Software Engineering: Evolving role of Software. Software crises & myths. Software engineering. Software process & process models, Linear sequential, prototyping, RAD, Evolutionary Product & Process. Project WSHH principle, critical practice. Book Recommended Software Engineering, A Practitioner’s Approach - Pressman Roger. S. TMH. (Strictly 5th Ed) Reference Books R1 Software Engineering Somerville Addison-Wesley (5/e) R2 Software Engineering Fairly R McGraw Hill R3 Principles of Software Development Davis A McGraw Hill R4 Software Engineering Shooman, M.L McGraw Hill management concepts: People, Product, Process, Project,
  • 2.
    Unit – I Unit– II Unit – III & Unit – IV Unit – V Unit – VI Evolving role of Software e.g. Older days Programmers use to write & deliver s/w…….. Project planning & Software risks e.g. Models/ Methods & Risk analysis…. Project Scheduling e.g. scope/ Estimation/ tools … Solution Manager (SAP) System engineering: Business Process (e.g. Advance), Prototype Software architecture Software testing & integration testing WhiteBox/ BlackBox etc.. Validation
  • 3.
    What is Software? Software is aset of items or objects that form a “configuration” that includes • programs • documents • data ... = Computer Programs + Associated Documents
  • 4.
    CHARACTERISTICS OF SOFTWARE •software is engineered • software doesn’t wear out • software is complex • software is a ‘differentiator’ • software is like an ‘aging factory’ What is Software?
  • 5.
  • 6.
    Software Applications • systemsoftware • real-time software • business software • engineering/scientific software • embedded software • PC software • AI software • WebApps (Web applications)
  • 7.
    Types of software •System software: Software that provides a platform to other software such as Microsoft Windows, GNU/Linux, antivirus, printers, scanners, BIOS, Virtualbox, VMware. • Application software: Programs designed for end users like Notepad, Firefox, Media players. • Engineering/Scientific software: Software built with techniques and formulae specific to specific scientific or engineering field, examples are MATLAB, AUTOCAD.
  • 8.
    Types of software •Embedded software: Programs that control machines or devices such as Traffic light control mechanism, Motorcycle dashboard display. • Product-line software: A group of products sharing common features that are used to satisfy specific needs of a mission like MS Office supporting home use, business use, enterprise use etc. • Web application software: Programs that are run on web servers and are accessed through a web browser, examples are Gmail, Facebook etc.
  • 9.
    Types of software •Artificial Intelligence software: Software that is capable of intelligent behavior, like in Robotics, Game Playing etc. • Legacy software system: Software systems that were developed decades ago which becomes costly and risky to maintain and evolve.
  • 10.
    Software Poses Challenges Howdo we ensure the quality of the software that we produce? How do we meet growing demand and still maintain budget control? How do we upgrade an aging "software plant?" How do we avoid disastrous time delays? How do we successfully institute new software technologies?
  • 11.
    Software Myths (FalseBelief) Management Myths: • Software practitioners follow the book of standards and procedures for software development. • If a delay occurs, programmers can be added at any point. • Outsourcing helps. Customer Myths: • General requirements and not a detailed one is needed for starting programming. • Software is easy to change. Developer’s Myths(Practitioner’s Myths): • Software developing is all about coding. • Only a finished software can be tested. • Software engineering has plentiful documentation and will slow down the process
  • 12.
  • 13.
    A Layered Technology tools methods processmodel a “quality” focus Software Engineering
  • 14.
    “Software engineering canbe defined as systematic and disciplined engineering approach applied for building and maintaining software.” It is a layered technology comprising, • Quality focus: as its central support element since improving quality of process and products through quality improvement techniques is the main focus of an organization. • Process layer: provides framework for management of software project. • Method layer: includes methods such as communication, design, coding and other technical aspects for development of software. • Tools layer: provides supporting tools for Method and Process layers.
  • 15.
    A Common ProcessFramework Common process framework Framework activities work tasks work products milestones & deliverles QA checkpoints Umbrella Activities
  • 16.
  • 17.
  • 18.
  • 19.
    The Process Model: Adaptability •the framework activities will always be applied on every project ... BUT • the tasks (and degree of rigor) for each activity will vary based on: -the type of project (an “entry point” to the model) -characteristics of the project -common sense judgment; concurrence of the project team
  • 20.
  • 21.
  • 22.
  • 23.
    1. Linear SequentialModel 2. RAD (Rapid Application Development Model Evolutionary Software Process Models: 1. Incremental Model 2. Spiral Model 3. WINWIN Spiral Model 4. Concurrent Development Model (Component Based Development)
  • 24.
  • 25.
    Delivers Software insmall but usable pieces, each piece builds on pieces already delivered. e.g. Word Processing Software…..
  • 26.
  • 27.
  • 28.
    Spiral Model (8SR2) POINTS TONOTE: 1) Couples iterative nature of prototyping & with controlled systematic approach 2) Each region is populated by “Set of tasks” (TASK SET) 3) Spiral model is divided into task regions Task set (regions) 1) Customer communication 2) Planning 3) Risk Analysis 4) Engineering 5) Construction & Release 6) Customer Evaluation (e.g. Feedback)
  • 29.
  • 30.
    Still Other ProcessModels • Component assembly model—the process to apply when reuse is a development objective • Concurrent process model—recognizes that different part of the project will be at different places in the process • Formal methods—the process to apply when a mathematical specification is to be developed • Cleanroom software engineering—emphasizes error detection before testing
  • 32.
  • 33.
    The People: TheStakeholders
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 43.
    W5HH Principle Why isthe system being develop? • This focus on the business reasons and problem statement for developing the software. It answers if the business purpose justifies the expenditure of people, cost,time and money. What will be done? • It helps team to establish project schedule by identifying key project task that are required by the customer. • It mentioned guidelines and principle for determining the tasks that need to be completed. When will it be done? • When the project tasks will be started and when they enter into the final stage to reach the goal.
  • 44.
    W5HH Principle Who isresponsible for a function? • Establishes roles and responsibility of each team member of software team. Where are they organizationally located? • All roles and responsibilities are not limited to the software team itself, the customers, users and stakeholders also have responsibilities. How will be job done technically and managerially? • Once product scope is established, a technical and management strategy must be defined for it. How much of each resource is needed? • It figures out how much resources necessary to complete the project as per cx requirement and budget of the project.
  • 45.