0% found this document useful (0 votes)
2 views15 pages

Integrated Approach to Software Engineering-Lect-2

The document discusses the principles and processes of software engineering, emphasizing the importance of understanding the problem, quality design, and maintainability. It outlines a structured software process that includes communication, planning, modeling, construction, and deployment, along with umbrella activities like risk management and quality assurance. Additionally, it highlights the need for adaptability in applying engineering principles to effectively develop reliable software solutions.

Uploaded by

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

Integrated Approach to Software Engineering-Lect-2

The document discusses the principles and processes of software engineering, emphasizing the importance of understanding the problem, quality design, and maintainability. It outlines a structured software process that includes communication, planning, modeling, construction, and deployment, along with umbrella activities like risk management and quality assurance. Additionally, it highlights the need for adaptability in applying engineering principles to effectively develop reliable software solutions.

Uploaded by

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

Integrated Approach to

Software Engineering

Introduction: Part-2

Dr Annushree Bablani
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
Software Engineering

● [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.
● What are the “sound engineering principles” that can be
applied to computer software development? How do we
“economically” build software so that it is “reliable”? What is
required to create computer programs that work “efficiently”
on not one but many different “real machines”? These are the
questions that continue to challenge software engineers.
Software Engineering

● The IEEE definition:


○ Software Engineering: (1) The application of a systematic,
disciplined, quantifiable approach to the development, operation,
nd maintenance of software; that is, the application of engineering
to software. (2) The study of approaches as in (1)
○ And yet, a “systematic, disciplined, and quantifiable” approach
applied by one software team may be burdensome to another. We
need discipline, but we also need adaptability and agility.
Software Engineering

● Software engineering is a layered technology


THE SOFTWARE PROCESS

A process is a collection of activities, actions, and tasks that are performed when
some work product is to be created.
Process Framework:
● Communication
○ important to communicate and collaborate with the customer and
other stakeholders. The intent is to understand stakeholders’
objectives for the project and to gather requirements
● Planning
○ planning activity creates a “map” that helps, guide .The map—called
a software project plan—defines the software engineering work by
describing the technical tasks to be conducted
THE SOFTWARE PROCESS

● Modeling
○ creating models to better understand software requirements
and the design that will achieve requirements.
● Construction
○ This activity combines code generation (either manual or
automated) and the testing that is required to uncover errors in
the code.
● 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
THE SOFTWARE PROCESS
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.
● Technical reviews—assesses software engineering work
products in an effort to uncover and remove errors before they
are propagated to the next activity.
THE SOFTWARE PROCESS
Umbrella activities
● Measurement—defines and collects process, project, and product
measures that assist the team in delivering software that meets
stakeholders’ needs
● Software configuration management—manages the effects of
change throughout the software process.
● 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
● 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
SOFTWARE ENGINEERING PRACTICE

The Essence of Practice

● Understand the problem (communication and analysis).


● Plan a solution (modeling and software design).
● Carry out the plan (code generation).
● Examine the result for accuracy (testing and quality
assurance).

These common sense steps lead to a series of essential


questions.
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?
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 subproblems be defined?
○ If so, are solutions readily apparent for the subproblems?
● Can you represent a solution in a manner that leads to
effective implementation?
○ Can a design model be created?
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?
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?

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy