Intro To SE-Digital Transformation
Intro To SE-Digital Transformation
Intro To SE-Digital Transformation
2
Industrial revolution
5th Industrial Revolution
The term Industry 5.0 refers to people working alongside robots and smart
machines. It's about robots helping humans work better and faster by leveraging
advanced technologies like the Internet of Things (IoT) and big data. It adds a
personal human touch to the Industry 4.0 pillars of automation and efficiency.
5.0 centers around three interconnected core values: human-centricity,
sustainability and resilience
3
Digital Transformation
Digital transformation is the integration of digital technology into all areas of a
business, fundamentally changing how you operate and deliver value to
customers. It's also a cultural change that requires organizations to continually
challenge the status quo, experiment, and get comfortable with failure.
6
Why Software is Important?
change
actual curve
idealized curve
10
Time
Software
Applications
• 1. System software: such as compilers, editors, file management utilities
• 2. Application software: stand-alone programs for specific needs.
• 3. Engineering/scientific software: Characterized by “number crunching”algorithms. such
as automotive stress analysis, molecular biology, orbital dynamics etc
• 4. Embedded software resides within a product or system. (key pad control of a
microwave oven, digital function of dashboard display in a car)
• 5. Product-line software focus on a limited marketplace to address mass consumer
market. (word processing, graphics, database management)
• 6. WebApps (Web applications) network centric software. As web 2.0 emerges, more
sophisticated computing environments is supported integrated with remote database and
business applications.
• 7. AI software uses non-numerical algorithm to solve complex problem. Robotics, expert
system, pattern recognition game playing 11
Software—New Categories
12
• Myth 2: Until I get the program running, I have no way of assessing its quality.
• Reality: technical review are a quality filter that can be used to find certain classes of software
defects from the inception of a project.
• Myth 3: software engineering will make us create voluminous and unnecessary documentation
and will invariably slow us down.
• Reality: it is not about creating documents. It is about creating a quality product. Better quality
leads to a reduced rework. Reduced work results in faster delivery times.
• Many people recognize the fallacy of the myths. Regrettably, habitual attitudes and
methods foster poor management and technical practices, even when reality dictates a
better approach.
14
Software Engineering Definition
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.
16
Software Engineering
A Layered Technology
tools
methods
process model
a “quality” focus
Any engineering approach must rest on organizational commitment to quality
which fosters a continuous process improvement culture.
Process layer as the foundation defines a framework with activities for
effective delivery of software engineering technology. Establish the context
where products (model, data, report, and forms) are produced, milestone are
established, quality is ensured and change is managed.
Method provides technical how-to’s for building software. It encompasses
17
many tasks including communication, requirement analysis, design modeling,
program construction, testing and support.
Tools provide automated or semi-automated support for the process and
• A process is a collection of activities, actions and tasks
that are performed when some work product is to be
created. It is not a rigid prescription for how to build
computer software. Rather, it is an adaptable approach
that enables the people doing the work to pick and choose
the appropriate set of work actions and tasks.
• Purpose of process is to deliver software in a timely
manner and with sufficient quality to satisfy those who
have sponsored its creation and those who will use it.
Software Process 18
Definition of Software
Process
• A framework for the activities, actions, and tasks that
are required to build high-quality software.
21
Umbrella Activities
Complement the five process framework activities and help team manage and control
progress, quality, change, and risk.
• Software project tracking and control: assess progress against the plan and take
actions to maintain the schedule.
• Risk management: assesses risks that may affect the outcome and quality.
• Software quality assurance: defines and conduct activities to ensure quality.
• Technical reviews: assesses work products to uncover and remove errors before
going to the next activity.
• Measurement: define and collects process, project, and product measures to ensure
stakeholder’s needs are met.
• Software configuration management: manage the effects of change throughout the
software process.
• Reusability management: defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
• Work product preparation and production: create work products such as models,
documents, logs, forms and lists.
22
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
Both do the same work with different depth and formality. Choose the
task sets that achieve the goal and still maintain quality and agility.
26
Process Patterns 27
• Stage patterns—defines a problem associated with a
framework activity for the process. It includes multiple
task patterns as well. For example,
EstablishingCommunication would incorporate the
task pattern RequirementsGathering and others.
• 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. Example
includes SprialModel or Prototyping.
•Standard CMMI Assessment Method for Process Improvement (SCAMPI) — provides a five
step process assessment model that incorporates five phases: initiating, diagnosing, establishing,
acting and learning.
•CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—provides a diagnostic
technique for assessing the relative maturity of a software organization; uses the SEI CMM as the
basis for the assessment .
•SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for software process
assessment. The intent of the standard is to assist organizations in developing an objective evaluation
of the efficacy of any defined software process.
•ISO 9001:2000 for Software—a generic standard that applies to any organization that wants to
improve the overall quality of the products, systems, or services that it provides. Therefore, the
standard is directly applicable to software organizations and companies.
30
Assessment and Improvement
Software Process
Software Process
Assessment
Capability
Software Process leads to leads to
Determination
Improvement
motivates
31
Personal Software Process (PSP)
• PSP emphasizes personal measurement of both the
work product and the quality of the work product.
• Recommends five framework activities:
• Planning
• High-level design
• High-level design review
• Development
• Postmortem
• Stresses the need for each software engineer to
identify errors early and as important, to understand
the types of errors
32
Team Software Process (TSP)
• The goal of TSP is to build self –directed project team
that organizes itself to produce high-quality software.
• Each project is “launched” using a “script” that defines
the tasks to be accomplished
• Teams (of 2 to 20 engineers) are self-directed:
• Plan and track work, set goals, own processes and plans
• Measurement is encouraged
• Making CMM Level 5 behavior normal and expected.
• Measures are analyzed with the intent of improving the
team process (through coaching, motivation, …)
33
Team Software Process (TSP)
34
• Process Technology tools have been developed to help
software organizations analyze their current process,
organize work tasks, control and monitor progress and
manage technical quality.
• Each member of a software team can use such tools to
develop a checklist of work tasks to be performed, work
products to be produced, and quality assurance activities
to be conducted.
• Representative tools: Igrafx process Tools(Corel
Corporation)
Process Technology 35
• If the process is weak, the end product will undoubtedly
suffer.
• People derive as much satisfaction from the creative
process as they do from the end product.
• A creative s/w professional should also derive as much
satisfaction from the process as the end-product.
Remember:
Why?
Less rework!
37