developed by reneta barneva, suny fredonia the process
TRANSCRIPT
Developed by Reneta Barneva, SUNY Fredonia
Software Process
Software process is a framework for the tasks that we are required to build high-quality software.
The process is not exactly the same as software engineering: software process defines the approach that is taken as software is engineered. But software engineering also includes technologies - technical methods and automated methods.
Developed by Reneta Barneva, SUNY Fredonia
Software Engineering
(1) The application of systematic, disciplined approach to the development, operation and maintenance of software;
that is the application of engineering to software.
(2) The study of approaches as in (1)
Developed by Reneta Barneva, SUNY Fredonia
Process, Methods, and Tools
Software Engineering is a leyered technology:
Developed by Reneta Barneva, SUNY Fredonia
Process, Methods, and Tools
Quality focus: any engineering rests on a commitment to quality: continuous process of improvement -> more mature approaches to software engineering.
Developed by Reneta Barneva, SUNY Fredonia
Process, Methods, and Tools
Process: the foundation of SE. Defines the framework for a set of key process areas that must be establish for effective delivery of SE technology.
Key process areas include:
technical methods
work products (model, documents, data, reports, forms, etc.)
milestones
changes to be done.
Developed by Reneta Barneva, SUNY Fredonia
Process, Methods, and Tools
Methods: provide technical how-to’s.
Include a broad array of tasks:
requirements analysis
design
program construction
testing
support
Developed by Reneta Barneva, SUNY Fredonia
Process, Methods, and Tools
Tools: provide automated or semi-automated support for the process and the methods.
When the tools are integrated, the system for support is called CASE.
Developed by Reneta Barneva, SUNY Fredonia
Generic View of Software Engineering
For each engineering process the following questions have to be answered:
What is the problem to be solved?
What characteristics of the entity are used to solve the problem?
How will the entity be realized?
How will the entity be constructed?
How to find the errors?
How will the entity be supported long time?
Developed by Reneta Barneva, SUNY Fredonia
Generic View of Software Engineering
Phases of software engineering:
Definition phase: What?
What definition to be processed?
What function is desired
What system behavior is expected?
What interfaces are to be established?
What design constraints exist?
What validation criteria to apply?
Developed by Reneta Barneva, SUNY Fredonia
Generic View of Software Engineering
Development phase: How?
How data are to be structured?
How function is to be implemented?
How interface to be generated?
How the design to be translated into programming code?
Three specific technical tasks:
software design
code generation
software testing
Developed by Reneta Barneva, SUNY Fredonia
Generic View of Software Engineering
Support phase: Focused on change
Types of change:
correction - correcting the error detected
adaptation - modifications due to change of the environment (OS, CPU, etc.)
enhancement - user requires additional functions to be included
prevention - software “wears out” due to changes; to prevent this “wear out”
Developed by Reneta Barneva, SUNY Fredonia
Generic View of Software Engineering
Support phase: Focused on change
In addition to this support the user requires continuous support:
in-house technical assistants
telephone help desk
application-specific web site
Developed by Reneta Barneva, SUNY Fredonia
The Software Process
Software process: A common process framework is established by defining a small number of framework activities that are applicable to all software projects
A number of task sets enable the framework to be adapted to the characteristics of the software project.
Umbrella activities such as
quality assurance,
software configuration management, and
measurement
overlay the framework activity and appear throughout the process.
Developed by Reneta Barneva, SUNY Fredonia
Measurement of Project Maturity
In 5 levels. Each level includes the previous ones.
Level 1: Initial. The software process is characterized as ad hoc.
Level 2: Repeatable. based on previous work on similar projects
Level 3: Defined. The software process is documented, standardized, and distributed to the whole organization.
Level 4. Managed. Detailed measures of software process and product quality are collected.
Level. 5. Optimizing. Continuous process improvement is enabled.
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Waterfall Model
Communication Planning
ModelingConstruction
Deployment analysis design code
test
project initiation requirement gathering estimating
scheduling tracking
delivery support feedback
Prescriptive model.Also called “Life Cycle Model.”Or Linear Model
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Waterfall Model
This is the classical model.
However:
•real projects rarely follow the sequential flow
•it is usually difficult to state all the requirements explicitly
•the customer must be patient, because the working version of the project will be ready almost at the end of the project time-span.
Developed by Reneta Barneva, SUNY Fredonia
V-Model
• Also prescriptive model.
• Requirements are refined progressively.
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Incremental Model
C o 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
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e ry f e e d b a c k
analys is
des ign code
t es t
increment # 1
increment # 2
delivery of 1st increment
delivery of 2nd increment
delivery of nth increment
increment # n
project calendar time
C o m m u n i c a t i o nP l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
De p l o y m e n t
d e l i v e r y
f e e d b a c k
analys is
des ign code
t es t
C o m m u n i c a t i o nP l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analys is
des igncode t es t
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Prototyping Model (Evolutionary)
Communication
Quick plan
Construction of prototype
Modeling Quick design
Delivery & Feedback
Deployment
communication
Quickplan
ModelingQuick design
Constructionof prototype
Deploymentdelivery &feedback
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Spiral Model (Evolutionary)
communication
planning
modeling
constructiondeployment delivery feedback
start
analysis design
code test
estimation scheduling risk analysis
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Evolutionary Models
Customer communication: tasks required to establish effective communication between developer and customer.
Planning: tasks required to define resources, timelines, and other project-related information.
Risk analysis: task required to asses both technical and management risks
Engineering: tasks required to build one or more representations of the application.
Construction and release: tasks required to construct, test install, and provide user support.
Developed by Reneta Barneva, SUNY Fredonia
Software Process Models: Concurrent Model
Under review
Baselined
Done
Under
revision
Awaiting
changes
Under
development
none
Modeling activity
represents the stateof a software engineeringactivity or task