Beruflich Dokumente
Kultur Dokumente
Sources:
Prescribed textbook by Pressman &Maxim
Wikipedia
Slides by Ankit Tanna (Google Drive)
Slides by Roger Pressman
Software Engineering Realities
A concerted effort should be made to understand the
problem before a software solution is developed.
If I had an hour to solve a problem Id spend 55 minutes thinking
about the problem and 5 minutes thinking about solutions. Albert
Einstein
design becomes a pivotal activity
software should exhibit high quality
software should be maintainable
25
tools
methods
process model
a quality focus
Software Engineering
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
2014 by Roger Pressman.
A quality Focus
Quality ensure makes customers come back and reduce effort
in maintenance and changes.
Continuous improvement towards more effective approaches
to software engineering.
The bedrock that supports software engineering is a quality
focus.
Process:
It is the foundation layer for software engineering.
It defines a framework for a set of key process areas (KPA) to
effectively manage and deliver quality software in a cost
effective manner.
The process defines the tasks to be performed and the order
in which they are to be performed
Methods:
It provide the technical how-to's for building software.
Methods encompass a broad array of tasks that include
requirements analysis, design, program construction, testing,
and support.
There could be more than one technique to perform a task
and different techniques could be used in different situations.
Tools:
Provide automated or semi-automated or just capturing
support for the process, methods and quality control.
When tools are integrated so that information created by one
tool can be used by another, a system for the support of
software development.
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
29
2014 by Roger Pressman.
Process framework
Why process :
A process defines who is doing what, when and how
to reach a certain goal.
To build complete software process.
Identified a small number of framework activities
that are applicable to all software projects,
regardless of their size or complexity.
It encompasses a set of umbrella activities that
are applicable across the entire software process.
Generic Process Framework Activities
Communication:
Heavy communication with customers, stakeholders, team
Encompasses requirements gathering and related activities
Planning:
Workflow that is to follow
Describe technical task, likely risk, resources will require, work
products to be produced and a work schedule.
Modeling:
Help developer and customer to understand requirements (Analysis of
requirements) & Design of software
Construction
Code generation: either manual or automated or both
Testing to uncover error in the code.
Deployment:
Delivery to the customer for evaluation
Customer provide feedback
Umbrella Activities
Software project tracking and control
Assessing progress against the project plan.
Take adequate action to maintain schedule.
Formal technical reviews
Assessing software work products in an effort to uncover and remove errors before
goes into next action or activity.
Software quality assurance
Define and conducts the activities required to ensure software quality.
Software configuration management
Manages the effects of change.
Document preparation and production
Help to create work products such as models, documents, logs, form and list.
Reusability management
Define criteria for work product reuse
Mechanisms to achieve reusable components.
Measurement
Define and collects process, project, and product measures
Assist the team in delivering software that meets customers needs.
Risk management
Assesses risks that may effect that outcome of project or quality of product (i.e.
software)
The Process Model: Adaptability
The framework activities will always be
applied on every project ... BUT
The tasks for each activity will vary based on:
The type of project (an entry point to the model)
Characteristics of the project
Common sense judgment; concurrence of the
project team
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
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
2014 by Roger Pressman.
Software Engineering Practice
Practice is a broad array of concepts, principles,
methods, and tools that you must consider as
software is planned and developed.
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
2014 by Roger Pressman.
Understand the Problem
Who has a stake in the solution to the
problem? That is, who are the stakeholders?
What are the unknowns? What data,
functions, and features are required to
properly solve the problem?
Can the problem be compartmentalized? Is it
possible to represent smaller problems that
may be easier to understand?
Can the problem be represented graphically?
Can an analysis model be created?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides
copyright 2009 by Roger Pressman.
Plan the Solution
Have you seen similar problems before? Are there
patterns that are recognizable in a potential
solution? Is there existing software that implements
the data, functions, and features that are required?
Has a similar problem been solved? If so, are
elements of the solution reusable?
Can sub-problems be defined? If so, are solutions
readily apparent for the sub-problems?
Can you represent a solution in a manner that leads
to effective implementation? Can a design model be
created?
Design
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
Carry Out the Plan
Does the solution conform to the plan? Is
source code traceable to the design model?
Is each component part of the solution
provably correct? Has the design and code
been reviewed, or better, have correctness
proofs been applied to algorithm?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
Examine the Result
Is it possible to test each component part of
the solution? Has a reasonable testing strategy
been implemented?
Does the solution produce results that
conform to the data, functions, and features
that are required? Has the software been
validated against all stakeholder
requirements?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
2014 by Roger Pressman.
David Hookers General Principles
1. The Reason It All Exists
To provide value to its users.
If it does not add value, dont do it.
2. KISS (Keep It Simple, Stupid!)
As simple as possible, but no simpler.
3. Maintain the Vision
Conceptual and architectural integrity
4. What You Produce, Others Will Consume
5. Be Open to the Future
6. Plan Ahead for Reuse
7. Think!
Perfection of means and confusion of goals
seem - in my opinion - to characterize our age
Albert Einstein
Software Myths
Affect managers, customers (and other non-
technical stakeholders) and practitioners
Are believable because they often have
elements of truth,
but
Invariably lead to bad decisions,
therefore
Insist on reality as you navigate your way
through software engineering
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
Software Myths
Management myths
Managers in most disciplines, are often under pressure to
maintain budgets, keep schedules on time, and improve
quality.
Myth1: Once we write the program and get it to work, our job is
done.
Reality: Someone once said that "the sooner you begin 'writing
code', the longer it'll take you to get done." Industry data
indicate that between 60 and 80 percent of all effort expended on
software will be expended after it is delivered to the customer for
the first time.
What impact will this assumption have on the Failure curve of
the software?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 8/e (McGraw-Hill 2014). Slides copyright
50
2014 by Roger Pressman.