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?
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
“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
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
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)
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)
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
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.