Unit 1
Unit 1
Nature of Software
Software Engineering Principles
Software Process
Software Myths
• What is software?
• What is software engineering?
• What is the difference between software engineering and
computer science?
• What is the difference between software engineering and
system engineering?
• What is a software process?
• What is a software process model?
• Software is a product
Delivers computing potential
Produces, manages, acquires, modifies, displays, or transmits
information
• Software is a vehicle for delivering a product
Supports or directly provides system functionality
Controls other programs (e.g., an operating system)
Effects communications (e.g., networking software)
Helps build other software (e.g., software tools)
change
actual curve
idealized curve
Time
BRACT’S, Vishwakarma Institute of Information Technology, Pune-48 10
What is software engineering?
• system software
• application software
• engineering/scientific software
• embedded software
• product-line software
• WebApps (Web applications)
• AI software
tools
methods
process model
a “quality” focus
Quality Focus
• TQM, Six Sigma gives continuous process improvement culture.
• Leads to the development of increasingly more effective approaches to
software engineering
30
Process
• Glue that holds the technology layers together.
• Enables rational & timely development of computer software.
• Defines framework that must be established for effective delivery of
software engineering technology.
• Forms the basis for management control of software projects.
• Establishes the context in which technical methods are applied, work
products are produced, milestones are established, quality is ensured,
change is properly managed.
31
Methods
• Provide the technical “how to’s “ for building software.
• Encompass a broad array of tasks that include communication,
requirement analysis, design modeling, construction, testing, support.
32
Tools
• Provide automated or semi-automated support for the process and
the methods.
• Integration of tools
• Information is shared
33
A Process Framework
• Process framework
Framework activities
work tasks
work products
milestones &
deliverables
QA checkpoints
Umbrella Activities
34
Framework Activities
• Communication
• Planning
• Modeling
Analysis of requirements
Design
• Construction
Code generation
Testing
• Deployment
35
Umbrella Activities
36
The Process Model: Adaptability
37
Process Patterns
38
Personal Software Process (PSP)
39
Purpose
40
Disadvantage
41
Team Software Process (TSP)
42
Purpose
43
The Waterfall Model
Co m m u n ic a t io n
p ro je c t in it ia t io n Planning
re q u ire m e n t g a t h e rin g estimating Mo d e lin g
scheduling
a na lys is Co n s t ru c t io n
tracking
de s ign De p lo y m e n t
c ode
t es t d e liv e ry
s u p p o rt
f e e dba c k
44
Theory
45
Advantages
• Simplicity
• Logical structuring of the different activities in a software
project
• Model is perfect for projects where requirements are very
well defined.
46
Disadvantages
• It is strict about moving only one step at a time. This is to ensure that the
complete project is moving together.
• Customer has difficulty expressing requirements in their entirely.
• Has difficulty accommodating natural uncertainty that exists at the
beginning of the cycle.
• Model does not allow capturing potential risk in the project.
• A working version of the software is not available until late in the
process.
47
The Incremental Model
incre m e n t # n
Co m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
a n a ly s is Co n s t ru c t i o n
d e s ig n
c ode De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
in cre m e n t # 2 n t h in cre me n t
Co m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
in cre m e nt # 1 2 n d in cre me n t
Co m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode
d e liv e ry o f
De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
1 s t in cre m e n t
48
Theory
49
Advantages
50
The RAD Model
Te am # n
Mo d e lin g
bus in e s s m od e ling
da t a m od e ling
proc e s s m od e ling
C o n s t ru c t io n
c om p one nt re u s e
Te am # 2 a ut om a t ic c od e
Co m m u n ic at io n ge ne ra t ion
t e s t in g
Mo d e li ng
b u s in e s s m o d e lin g
d a t a m o d e lin g
p ro ce s s m o d e lin g
Plan n in g
Co ns t ruc t io n De p lo ym e n t
Te am # 1 co m p o n e n t re u s e
in t e g rat io n
a u t o m a t ic co d e
g e n e ra t io n d e liv e ry
Mo d e lin g t e s t in g fe e d b ack
b u s in e s s mo d e lin g
d at a mo d e lin g
p ro ce s s mo d e lin g
Co n s t ru c t io n
co mp o n e n t re u s e
au t o mat ic co d e
g e n e rat io n
t e s t in g
6 0 - 9 0 d ays
51
Theory
52
Advantages
53
Disadvantages
54
Evolutionary Models: Prototyping
Q u i c k p la n
Co m m u n ic a t io n
Mo d e lin g
Q u ic k d e s i g n
De p loym e n t
De liv e ry
& Fe e d b a c k Co n s t ru c t io n
of
p ro t o t y p e
55
Theory
56
Advantages
57
Disadvantages
58
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery code
feedback test
59
Theory
60
Advantages
61
Disadvantages
62
Evolutionary Models: Concurrent
none
Awa it ing
c ha nge s
Unde r re vie w
Unde r
re vis ion
Ba s e line d
Done
63
The Rational Unified Process (RUP)
• A modern generic process derived from the work on the
UML and associated process.
• Brings together aspects of the 3 generic process models
discussed previously.
• Normally described from 3 perspectives
- A dynamic perspective that shows phases over time;
– A static perspective that shows process activities;
– A practice perspective that suggests good practice.
64
Phases in the Rational Unified Process
65
RUP phases
• Inception
- Establish the business case for the system.
• Elaboration
- Develop an understanding of the problem domain and the system
architecture.
• Construction
- System design, programming and testing.
• Transition
- Deploy the system in its operating environment.
66
RUP iterations
• In-phase iteration
- Each phase is iterative with results
developed incrementally.
• Cross-phase iteration
- As shown by the loop in the RUP model, the
whole set of phases may be enacted
incrementally.
67
Static workflows in the Rational Unified Process
68
Static workflows in the Rational Unified Process
69
RUP overview
RUP good practices
• Develop software iteratively
- Plan increments based on customer priorities and deliver
highest priority increments first.
• Manage requirements
- Explicitly document customer requirements and keep
track of changes to these requirements.
• Use component-based architectures
- Organize the system architecture as a set of reusable
components.
71
RUP good practices
• Visually model software
- Use graphical UML models to present static and dynamic views
of the software.
• Verify software quality
- Ensure that the software meet’s organizational quality standards.
• Control changes to software
- Manage software changes using a change management system
and configuration management tools.
72
Key points
• Processes should include activities to cope with change. This
may involve a prototyping phase that helps avoid poor
decisions on requirements and design.
• Processes may be structured for iterative development and
delivery so that changes may be made without disrupting the
system as a whole.
• The Rational Unified Process is a modern generic process
model that is organized into phases (inception, elaboration,
construction and transition) but separates activities
(requirements, analysis and design, etc.) from these phases.
73
Thank You
74