0% found this document useful (0 votes)
56 views32 pages

Introduction To Software Engineering

The document discusses software engineering as a layered technology consisting of processes, methods, tools, and a quality focus. It describes the software engineering process as the foundation that establishes a framework for rational development. Process defines activities, actions, tasks, work products, milestones, and quality assurance. Methods provide technical guidance while tools provide automated support. The software process consists of communication, planning, modeling, construction, and deployment framework activities along with umbrella activities like project tracking and quality assurance. Process models can vary in structure and level of detail depending on factors like project size. Both plan-driven and agile processes are discussed.

Uploaded by

Muhammad Moiz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views32 pages

Introduction To Software Engineering

The document discusses software engineering as a layered technology consisting of processes, methods, tools, and a quality focus. It describes the software engineering process as the foundation that establishes a framework for rational development. Process defines activities, actions, tasks, work products, milestones, and quality assurance. Methods provide technical guidance while tools provide automated support. The software process consists of communication, planning, modeling, construction, and deployment framework activities along with umbrella activities like project tracking and quality assurance. Process models can vary in structure and level of detail depending on factors like project size. Both plan-driven and agile processes are discussed.

Uploaded by

Muhammad Moiz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Introduction To

Software Engineering
CHAPTER 2
A Layered Technology

tools

methods

process model

a “quality” focus

Software Engineering
 Software engineering is a layered technology. The foundation
for software engineering is the process layer. 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.

 Software engineering methods provide the technical how-to’s


for building software. Methods encompass a broad array of
tasks that include communication, requirements analysis,
design modeling, program 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.
The Software Process
 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 design model).
 A task focuses on a small, but well-defined objective
(e.g., conducting a unit test) that produces a tangible
outcome
A Process Framework

 Process framework
 Framework activities
 work tasks
 work products
 milestones & deliverables
 QA checkpoints
 Umbrella Activities
A 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:
Framework Activities
 Communication
 Planning
 Modeling
◦ Analysis of requirements
◦ Design
 Construction
◦ Code generation
◦ Testing
 Deployment
Framework Activities

• Communication
 –involves heavy communication with the

customer(and other stakeholders) and


encompasses requirements gathering.
 •Planning
 –Describes the technical tasks to be

conducted, the risks that are likely, resources


that will be required, the work products to be
produced and a work schedule
Framework Activities

 Modeling
 –encompasses the creation of models that allow

the developer and customer to better understand


S/W req.
 •Construction
 –combines code generation and the testing

required uncovering errors in the code


 •Deployment
 –deliver the product to the customer who evaluates

the delivered product and provides feedback


Umbrella Activities

 Software engineering process framework


activities are complemented by a number of
umbrella activities. In general, umbrella
activities are applied throughout a software
project and help a software team manage and
control progress, quality, change, and risk.
Typical umbrella activities include:
Umbrella Activities
 Software project tracking and control—
allows the software team to assess progress
against the project plan and take any
necessary action to maintain the schedule.
 Risk management— assesses risks that may

affect the outcome of the project or the


quality of the product.
 Software quality assurance —defines and

conducts the activities required to ensure


software quality
Umbrella Activities
 Technical reviews— assesses software
engineering work products in an effort to
uncover and remove errors before they are
propagated to the next activity.
 Measurement —defines and collects process,

project, and product measures that assist the


team in delivering software that meets
stakeholders’ needs; can be used in conjunction
with all other framework and umbrella activities.
 Software configuration management —

manages the effects of change throughout the


software process.
Umbrella Activities
Reusability management —defines criteria
for work product reuse (including software
components) and establishes mechanisms to
achieve reusable components.
 Work product preparation and production

—encompasses the activities required to


create work products such as models,
documents, logs, forms, and lists.
Adapting a Process Model
 a process adopted for one project might be
significantly different than a process adopted
for another project. Among the differences
are:
Adapting a Process Model
◦ the overall flow of activities, actions, and tasks and the
interdependencies among them
◦ the degree to which actions and tasks are defined within each
framework activity
◦ the degree to which work products are identified and required
◦ the manner which quality assurance activities are applied
◦ the manner in which project tracking and control activities are
applied
◦ the overall degree of detail and rigor with which the process is
described
◦ the degree to which the customer and other stakeholders are
involved with the project
◦ the level of autonomy given to the software team
◦ the degree to which team organization and roles are prescribed
A Generic Process Model
 a process was defined as a collection of work activities,
actions, and tasks that are performed when some work
product is to be created. Each of these activities, actions,
and tasks reside within a framework or model that defines
their relationship with the process and with one another.

 The software process is represented schematically in


Figure . Referring to the figure, each framework activity is
populated by a set of software engineering actions. Each
software engineering action is defined by a task set that
identifies the work tasks that are to be completed, the
work products that will be produced, the quality assurance
points that will be required, and the milestones that will be
used to indicate progress.
A Generic Process Model
 process flow —describes how the framework
activities and the actions and tasks that occur
within each framework activity are organized
with respect to sequence and time and is
illustrated in Figure.
A linear process flow executes each of the five
framework activities in sequence, beginning with
communication and culminating with deployment
(Figure 2.2a).
An iterative process flow repeats one or more of the
activities before proceeding to the next (Figure 2.2b).
An evolutionary process flow executes the activities
in a “circular” manner. Each circuit through the five
activities leads to a more complete version of the
software (Figure 2.2c).
A parallel process flow (Figure 2.2d) executes one
or more activities in parallel with other activities (e.g.,
modeling for one aspect of the software might be
executed in parallel with construction of another
aspect of the software).
Identifying a Task Set

 A task set defines the actual work to be done to


accomplish the objectives of a software
engineering action.

◦ A list of the task to be accomplished


◦ A list of the work products to be produced
◦ A list of the quality assurance filters to be applied
Process Patterns
 A process pattern

◦ describes a process-related problem that is encountered


during software engineering work,
◦ identifies the environment in which the problem has
been encountered, and
◦ suggests one or more proven solutions to the problem.

 Stated in more general terms, a process pattern
provides you with a template [Ambler]—a
consistent method for describing problem
solutions within the context of the software
process.
 Stage patterns—defines a problem associated with
a framework activity for the process.
 Task patterns—defines a problem associated with a

software engineering action or work task and


relevant to successful software engineering
practice
 Phase patterns—define the sequence of framework

activities that occur with the process, even when


the overall flow of activities is iterative in nature
Plan-driven and agile processes

 Plan-driven processes are processes where all of


the process activities are planned in advance and
progress is measured against this plan.
 •In agile processes, planning is incremental and
it is easier to change the process to reflect
changing customer requirements.
 •In practice, most practical processes include
elements of both plan-driven and agile
approaches.
 •There are no right or wrong software processes.
The people involved with software
 The following are software "stakeholders",
i.e., people who have some interest in a
software product and/or its development
 –end users --people who will use the

software or people who represent those who


will use it
 –customers --people who purchase the

software, which they may or may use


themselves
 domain experts --people who fully understand
the application domain in which the software will
run
 –analysts --members of the software

development staff who specialize in requirements


analysis and specification
 –implementers --members of the development

staff who specialize in software design and


implementation
 –testers --members of the development staff and

user community who test the software to ensure


that it meets the requirements specification
 managers --those who manage the development
process, as well as those who manage end users
when the software is installed in an organization
 –visionaries --those who have the "big picture"

for what the software is intended to do and how


it will be developed
 –maintainers and operators --those who

conduct post-development maintenance and


operations, as necessary
 –other interested parties --anyone else

interested in the software product, such as those


with a financial investment
Generic Phases
 Definition Phase
 Focus on ‘what’the software is

 Development Phase
 Focus on ‘how’the software works

 Maintenance Phase
 Focus on ‘change’ to the software
Definition phase

 •Identify information to be processed


 •Identify system behavior -functions and
performance
 •Détermine constraints , interfaces, validation
criteria
 •Major tasks:
 System engineering
 Software project planning
 Requirements analysis
Development phase

 •Define data structures, function


implementation, procedural details, interfaces
 •Translate design to programming language
 •How testing is performed
 •Major tasks:
 Software design
 Code generation
 Software testing
Maintenance phase

 Reapplies definition and development phases


to existing software
 •Types of changes:
 Correction
 Adaptation
 Enhancement
 Prevention

You might also like