Professional Documents
Culture Documents
SE - prog notes part 1-1 (1 to 42) bw
SE - prog notes part 1-1 (1 to 42) bw
What is Software?
1) instructions (programs) that when executed
provide desired function and performance
2) data structures that enable the programs to
adequately manipulate information
3) documents that describe the operation and use
of the programs
A logical rather than physical system element
What is Software?
• software is engineered
• software doesn’t wear out
• software is custom built
• software is complex
• A concerted effort should be made to
understand the problem before a software
solution is developed.
• Software should exhibit high quality
• Software should be maintainable
Failure (“Bathtub”) Curve for Hardware
Failure Rate
Infant
mortality Wear
out
Time
Software Applications
system software
real-time software
business software
engineering/scientific software
embedded software
PC software
WebApps (Web applications)
AI software
Software Myths
Management
We have standards
We have new computers
We’ll add more people to catch up
I outsourced it, I’m done
Customer
We have general objectives, let’s start
Change is easily accommodated
Practitioner
We’ll write it and be done
I can’t assess quality until it is running
I only need deliver code
Software engineering is about meaningless documents
The Cost of Change
Software Poses Challenges
How do we ensure the quality of the software that
we produce?
a “quality” focus
- bedrock
Page 53
• Process Model: The software engineering process is the
glue that holds the technology layers together and
enables rational and timely development of computer
software. Process defines a framework that must be
established for effective delivery of software
engineering technology. The software process forms
the basis for management control of software
projects and establishes the context in which
technical methods are applied, work products
(models, documents, data, reports, forms, etc.) are
produced, milestones are established, quality is
ensured, and change is properly managed.
• Methods: methods provide the technical how-to’s for
building software. Methods encompass a broad
array of tasks that include communication,
requirements analysis, design modeling, programn
construction, testing, and support. Software
engineering methods rely on a set of basic
principles that govern each area of the technology
and include modeling activities and other
descriptive techniques.
• Software engineering tools provide automated or
semi-automated support for the process and the
methods. When tools are integrated so that
information created by one tool can be used by
another, a system for the support of software
development, called computer-aided software
engineering, is established.
A Common Process Framework
Common process framework
Framework activities
Task Sets
tasks
milestones, deliverables
SQA checkpoints
Umbrella Activities
• A process is a collection of activities, actions, and
tasks that are performed when some work product is to
be created.
• An activity strives to achieve a broad objective (e.g.,
communication with stakeholders) and is applied
regardless of the application domain, size of the
project, complexity of the effort, or degree of rigor with
which software engineering is to be applied.
• An action (e.g., architectural design) encompasses a
set of tasks that produce a major work product (e.g.,
an architectural model).
• A task focuses on a small, but well-defined objective
(e.g., conducting a unit test) that produces a tangible
outcome.
The Process Framework
• A process framework establishes the foundation for a complete software
engineering process by identifying a small number of framework activities that are
applicable to all software projects, regardless of their size or complexity. In addition,
the process framework encompasses a set of umbrella activities that are applicable
across the entire software process. A generic process framework for software
engineering encompasses five activities:
• Communication
• Planning
• Modeling
• Construction
• Deployment
Umbrella Activities
• Software project tracking and control
• Risk management
• Software quality assurance
• Technical reviews
• Measurement
• Software configuration management
• Reusability management
• Work product preparation and production:
Encompasses the activities required to create
work products such as models, documents,
logs, forms, and lists.
Process Adaptation a process
adopted for one project might be significantly different than a process
adopted for another project. Among the differences are:
its life.
It is a diagrammatically representation which also provide description
v. Prototype Model
vi. Spiral Model
vii. Concurrent Development Model 1
SDLC: WATERFALL MODEL
It is a theoretical software development Requirement
analysis
model.
It is developed by BOEHM in 1970.
Software Design
It is also known as classical, traditional, & Detailed Design
conventional or linear segment model.
There are different stages to the Unit
Implementation &
development and the output of first stage Unit Testing
flow to the next stage and so on.
Integration &
It force on sequential phase. System Testing
development in which no phase can overlap
another phase. Installation
& Operation
Each phase of this model is well define the
starting and ending criteria which is to be
documented by which the standard outputs Maintenance &
Enhancement
produce by each phase can formulate.
Among the problems
that are sometimes encountered when the waterfall model is applied
are:
problem
definition
status technical
quo development
solution
integration
Still Other Process Models
• WINWIN spiral model - defines negotiating activities and adds anchor points
to spiral model
• Concurrent process model—recognizes that different part of the project will
be at different places in the process
• Component-based development model—the process to apply when reuse is
a development objective
• Formal methods—the process to apply when a mathematical specification
is to be developed
• Cleanroom software engineering—emphasizes error detection before
testing