Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 28

SOFTWARE

ENGINEERING
Week3: Software Engineering & The
Software Process

1
Map
• Software Engineering
• Software Engineering Layers
• The Software Process
• How to Implement the Process
• A Generic Process Framework
• Umbrella Activities
• The Essence of practice

2/16/2020 2
Software Engineering
• 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/16/2020 3
Software Engineering Layers

2/16/2020 4
Software Engineering Layers
1. The bedrock that supports software engineering is a
quality focus.
2. The foundation for software engineering is the process
layer:
• rational and timely development
• defines a framework
• management control of software projects
• 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.

2/16/2020 5
Software Engineering Layers
3. Software engineering methods provide the technical
how-to’s for building software:
• tasks that include communication, requirements analysis, design
modeling, program construction, testing, and support.
4. Tools provide automated or semi-automated support for
the process and the methods.

2/16/2020 6
The Software Process
• Process: is a collection of activities, actions, and tasks
that are performed when some work product is to be
created.
• Activity: strives to achieve a broad objective (e.g.,
communication with stakeholders).
• Action: encompasses a set of tasks that produce a major
work product (e.g., architectural design – work product: an
architectural design model).
• Task: focuses on a small, but well-defined objective that
produces a tangible outcome (e.g., conducting a unit test).

2/16/2020 7
Actions and Tasks Examples
• Given: small software project requested by one person (at
a remote location) with simple, straightforward
requirements 
• First Activity : Communication
• Action: phone conversation (simple)
• work tasks: the task set that this action encompasses are:
1. Make contact with stakeholder via telephone.
2. Discuss requirements and take notes.
3. Organize notes into a brief written statement of requirements.
4. E-mail to stakeholder for review and approval.

2/16/2020 8
How to Implement the Process
• The software process is NOT a rigid prescription
• It is adaptable
• The software team can pick and choose the appropriate set of work
actions and tasks.

2/16/2020 9
A Generic Software Process Framework

2/16/2020 10
A Generic Process Framework
• A generic process framework for software engineering
encompasses five activities:
1. Communication.
2. Planning.
3. Modeling.
4. Construction.
5. Deployment.

These are used always (but with different details) depending if the
project is a:
• simple programs
• the creation of large Web applications
• for the engineering of large, complex computer-based systems

2/16/2020 11
1. Communication
• When: Before any technical work can commence:
• Who: Software engineer / system analyst with the
customer (and other stakeholders).
• Why? to understand stakeholders’ objectives for the
project and to gather requirements that help define
software features and functions.

2/16/2020 12
2. Planning
• Any complicated journey can be simplified if a map exists.
• This map called — a software project plan—
• Defines the software engineering work by
• describing the technical tasks to be conducted
• the risks that are likely
• the resources that will be required
• the work products to be produced
• and a work schedule.

2/16/2020 13
3. Modeling
• Architectures create a “sketch” of the thing so that you’ll
understand the big picture. If required, you refine the
sketch into greater and greater detail in an effort to better
understand the problem and how you’re going to solve it.
• A software engineer also creates models to better
understand software requirements and the design that will
achieve those requirements.

2/16/2020 14
4. Construction
• This activity combines code generation (either manual or
automated) and the testing that is required to uncover
errors in the code.

2/16/2020 15
5. Deployment
• The software (as a complete entity or as a partially
completed increment) is delivered to the customer who
evaluates the delivered product and provides feedback
based on the evaluation.

2/16/2020 16
Umbrella Activities
• Umbrella activities are applied throughout a software
project (process) and help a software team manage and
control progress, quality, change, and risk.
• Software engineering process framework activities are
complemented by these activities

2/16/2020 17
Umbrella Activities
1. Software project management
2. Risk management
3. Software quality assurance
4. Technical reviews
5. Measurement
6. Software configuration management
7. Reusability management
8. Work product preparation and production

2/16/2020 18
Umbrella Activities
• Software project management: 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.
EX: Funding will be lost, Less reuse than planned.
• Software quality assurance: defines and conducts the
activities required to ensure software quality.
Ex. Reviews and audits, Testing.
• Technical reviews: assesses software engineering work
products in an effort to uncover and remove errors before
they are propagated to the next activity.
2/16/2020 19
Umbrella Activities
• Measurement: defines and collects process, project, and
product measures that assist the team in delivering
software that meets stakeholders’ needs. Ex. Measuring
similarity, size of code.
• Software configuration management: manages the
effects of change throughout the software process. Ex: New
business or market conditions.
• 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.
2/16/2020 20
The Essence of practice
• the essence of problem solving  the essence of
software engineering practice.
1. Understand the problem (communication and analysis).
2. Plan a solution (modeling and software design).
3. Carry out the plan (code generation).
4. Examine the result for accuracy (testing and quality
assurance).

2/16/2020 21
1. 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?

2/16/2020 22
2. 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?

2/16/2020 23
3. 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?

2/16/2020 24
4. 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?

2/16/2020 25
Stakeholders
• A stakeholder is anyone who has a stake in the successful
outcome of the project—business managers, end users,
software engineers, support people, etc.

2/16/2020 26
Activity
• Find as many possible Roles – stakeholders that might be related to any Software project
• Manager
• Project Manager
• Product Manager
• Business Analyst
• Investors/project sponsors

• UI UX Designer (UI: user Interface, UX user experience)


• Architect (software design)
• Developer, Dev Ops( development Operations)
• Software engineer
• Computer Engineer
• Tester
• Security Specialist

• Customer service/Support disk


• Marketing
• Sales Representative

• Users
• Customer

2/16/2020 27
•Questions?
•Comments!
•Concerns..

2/16/2020 28

You might also like