0% found this document useful (0 votes)
12 views17 pages

Class 3

Uploaded by

dineshp2986
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)
12 views17 pages

Class 3

Uploaded by

dineshp2986
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

2.

Software Engineering
• Some realities:
• a concerted effort should be made to understand the
problem before a software solution is developed
• design becomes a pivotal activity
• software should exhibit high quality
• software should be maintainable
• The seminal definition:
• [Software engineering is] the establishment and use of sound
engineering principles in order to obtain economically
software that is reliable and works efficiently on real
machines.

1
Software Engineering
• The IEEE definition:
• Software Engineering: (1) The application of a systematic,
disciplined, quantifiable 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).

2
A Layered
Technology
tools

methods

process model

a “quality” focus

Software Engineering

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3
The Software Process
Process
• A process is a collection of activities, actions,
and tasks that are performed when some
work product is to be created.

The Software Process


• A structured set of activities required to
develop a software system.

• A software process model is an abstract representation of


a process. It presents a description of a process from some
particular perspective.
The Software Process
• 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 (group of related
tasks and actions for a major objective).

• 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.
Generic Software Process Framework
The Generic Software Process Activities
Communica
tion

Planning
Deploymen
t
Software
Process
Activities

Constructio Modeling
n
Process Framework Activities

• Communication – Communicate with stakeholders and customers to obtain


objectives of the system and requirements for the software.

• Planning – The software project plan has details of resources needed, tasks
and risk factors likely to occur, and schedule.

• Modelling – Architectural models and design to better understand the


problem and work towards the best solution.

• Construction – Generation of code and testing of the system to rectify


errors and ensure all specified requirements are met.

• Deployment – Entire software product or partially completed product is


delivered to the customer for evaluation and feedback.
Many different Software Processes But All
Involve
• Specification – defining what the system should do;

• Design and implementation – defining the organization of


the system and implementing the system;

• Validation – checking that it does what the customer


wants;

• Evolution – changing the system in response to changing


customer needs
Umbrella Activities

Work product
preparation and
Reusability production
management
Software project
tracking and
Software control
Configuration Umbrella
Management Activities
(SCM)

Risk management
Measurement

Software quality
Technical reviews assurance (SQA)
Umbrella Activities
• Software project tracking and control – Compare the progress of the project with the plan and

take steps to maintain a planned schedule.

• Risk management – Evaluate risks that can affect the outcome and quality of the software

product.

• Software quality assurance (SQA) – Conduct activities to ensure the quality of the product.

• Technical reviews – Assessment of errors and corrections done at each stage of activity.

• Measurement – All the measurements of the project and product features.

• Software configuration management (SCM) – Controlling and tracking changes in the software.

• Reusability management – Back up work products for reuse and apply the mechanism to achieve

reusable software components.

• Work product preparation and production – Project planning and other activities used to

create work products are documented.


Software development Process flow

• Process flow determines how activities, actions and tasks are


arranged with respect to sequence and time.
Linear process flow

• Linear process flow executes each activity in sequence.


Software development Process flow Cont’d
• Iterative process flow

Iterative process flow repeats one or more activities before


starting next.
Software development Process flow
Cont’d
• Evolutionary process flow

Evolutionary process flow carries out activities in a circular


way.
Software development Process flow
Cont’d
• Parallel process flow

Parallel process flow executes one or more activities in parallel with each
other.
Defining a framework activity
• Consider communication activity. For a small project, this
can be defined as having tasks set:
• Making a phone call with stakeholders.
• Discuss requirements and note them down.
• Organize requirements.
• Mail stakeholders for review and approval.

For large projects, this may have extended actions such as feasibility
study, elicitation of requirements, elaboration of requirements,
specification documents, validation etc.
Identifying a task set
• Task set is the actual work to be done to achieve an objective of
engineering action.
• For a small project, consider elicitation action in communication
activity, this may include.
• Prepare a list of stakeholders of the project.

• Organize a meeting for stakeholders.

• Discuss requirements.

• Finalize requirements list.

• Make a list of issues raised.


For large projects, extraneous steps may be added to elicitation such as
interviewing each stakeholder separately before the group meeting, more
techniques applied in discussing requirements…etc.

You might also like