Week 1 Introduction To SE Part 2
Week 1 Introduction To SE Part 2
Software Process
1
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 many tasks including
communication, requirement analysis, design modeling, program construction, testing and
support.
2
Tools provide automated or semi-automated support for the process and methods.
Software Process
3
Communication: communicate with customer to understand objectives and
gather requirements
Planning: creates a “map” defines the work by describing the tasks, risks
and resources, work products and work schedule.
Modeling: Create a “sketch”, what it looks like architecturally, how the
constituent parts fit together and other characteristics.
Construction: code generation and the testing.
Deployment: Delivered to the customer who evaluates the products and
provides feedback based on the evaluation.
5
Adapting a Process Model
The process should be agile and adaptable to problems. Process adopted for one
project might be significantly different than a process adopted from another
project. (to the problem, the project, the team, organizational culture). Among the
differences are:
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
6
Prescriptive and Agile Process
Models
7
The Essence of Practice
How does the practice of software engineering fit in the process
activities mentioned above? Namely, communication, planning,
modeling, construction and deployment.
George Polya outlines the essence of problem solving, suggests:
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).
8
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?
9
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?
10
Carry Out the Plan
11
Examine the Result
12
Hooker’s General Principles for Software
Engineering Practice: important underlying
law
Help you establish mind-set for solid software engineering practice (David
Hooker 96).
1: The Reason It All Exists: provide values to users
2: KISS (Keep It Simple, Stupid! As simple as possible)
3: Maintain the Vision (otherwise, incompatible design)
4: What You Produce, Others Will Consume (code with concern for those
that must maintain and extend the system)
5: Be Open to the Future (never design yourself into a corner as
specification and hardware changes)
6: Plan Ahead for Reuse
7: Think! Place clear complete thought before action produces better results.
13
Software Myths
Erroneous beliefs about software and the process that is used to
build it.
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 …
Insiston reality as you navigate your way through software
engineering
14
Software Myths Examples
Myth 1: Once we write the program and get it to work, our job is done.
Reality: the sooner you begin writing code, the longer it will take you to get done. 60% to
80% of all efforts are spent after software is delivered to the customer for the first time.
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.
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.
15
How It all Starts
SafeHome:
Every software project is precipitated by some business
need—
the need to correct a defect in an existing
application;
the need to the need to adapt a ‘legacy system’ to
a changing business environment;
the need to extend the functions and features of
an existing application, or
the need to create a new product, service, or
system.
16
Case studies
17
Insulin pump control system
Collects data from a blood sugar sensor and calculates the amount of
insulin required to be injected.
Calculation based on the rate of change of blood sugar levels.
Sends signals to a micro-pump to deliver the correct dose of insulin.
Safety-critical system as low blood sugars can lead to brain
malfunctioning, coma and death; high-blood sugar levels have long-term
consequences such as eye and kidney damage.
18
Insulin pump hardware
architecture
19
Activity model of the
insulin pump
20
Essential high-level requirements
The system shall be available to deliver insulin when required.
The system shall perform reliably and deliver the correct amount of
insulin to counteract the current level of blood sugar.
The system must therefore be designed and implemented to ensure that
the system always meets these requirements.
21
A patient information system for
mental health care
A patient information system to support mental health care is a medical
information system that maintains information about patients suffering
from mental health problems and the treatments that they have received.
Most mental health patients do not require dedicated hospital treatment
but need to attend specialist clinics regularly where they can meet a
doctor who has detailed knowledge of their problems.
To make it easier for patients to attend, these clinics are not just run in
hospitals. They may also be held in local medical practices or community
centres.
22
MHC-PMS
23
MHC-PMS goals
24
The organization of the MHC-PMS
25
MHC-PMS key features
26
MHC-PMS concerns
Privacy
It is essential that patient information is confidential and is never disclosed to
anyone apart from authorised medical staff and the patient themselves.
Safety
Some mental illnesses cause patients to become suicidal or a danger to other
people. Wherever possible, the system should warn medical staff about
potentially suicidal or dangerous patients.
The system must be available when needed otherwise safety may be
compromised and it may be impossible to prescribe the correct medication to
patients.
27
Wilderness weather station
28
The weather station’s
environment
29
Weather information system
The weather station system
This is responsible for collecting weather data, carrying out some initial data
processing and transmitting it to the data management system.
The data management and archiving system
This system collects the data from all of the wilderness weather stations, carries
out data processing and analysis and archives the data.
The station maintenance system
This system can communicate by satellite with all wilderness weather stations to
monitor the health of these systems and provide reports of problems.
30
Additional software functionality
Monitor the instruments, power and communication hardware and report
faults to the management system.
Manage the system power, ensuring that batteries are charged whenever
the environmental conditions permit but also that generators are shut
down in potentially damaging weather conditions, such as high wind.
Support dynamic reconfiguration where parts of the software are replaced
with new versions and where backup instruments are switched into the
system in the event of system failure.
31