SE Activities
SE Activities
SE Activities
• Generic products
• Stand-alone systems that are marketed and sold to any customer
who wishes to buy them.
• Examples – PC software such as editing, graphics programs,
project management tools; CAD software; software for specific
markets such as appointments systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to meet
their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
1
Why Software is Important?
5
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 6
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.
8
FAQ about software engineering
Question Answer
9
Essential attributes of good software
Product characteristic Description
10
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, testing11and
support.
Tools provide automated or semi-automated support for the process and methods.
• 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 12
• 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.
• For many software projects, these framework activities are applied iteratively as
a project progresses. Each iteration produces a software increment that provides a
subset of overall software features and functionality.
•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
• 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.
24
• 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.
26
Insulin pump control system
27
Insulin pump hardware
architecture
28
Activity model of the insulin
pump
29
Essential high-level
requirements
30
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.
31
MHC-PMS
• The MHC-PMS (Mental Health Care-Patient Management
System) is an information system that is intended for use in
clinics.
• It makes use of a centralized database of patient information
but has also been designed to run on a PC, so that it may be
accessed and used from sites that do not have secure network
connectivity.
• When the local systems have secure network access, they use
patient information in the database but they can download and
use local copies of patient records when they are disconnected.
32
MHC-PMS goals
33
The organization of the MHC-PMS
34
MHC-PMS key features
• Individual care management
• Clinicians can create records for patients, edit the information in the
system, view patient history, etc. The system supports data
summaries so that doctors can quickly learn about the key problems
and treatments that have been prescribed.
• Patient monitoring
• The system monitors the records of patients that are involved in
treatment and issues warnings if possible problems are detected.
• Administrative reporting
• The system generates monthly management reports showing the
number of patients treated at each clinic, the number of patients who
have entered and left the care system, number of patients sectioned,
the drugs prescribed and their costs, etc.
35
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.
36
Wilderness weather station
• The government of a country with large areas of wilderness
decides to deploy several hundred weather stations in remote
areas.
• Weather stations collect data from a set of instruments that
measure temperature and pressure, sunshine, rainfall, wind
speed and wind direction.
• The weather station includes a number of instruments that
measure weather parameters such as the wind speed and direction,
the ground and air temperatures, the barometric pressure and the
rainfall over a 24-hour period. Each of these instruments is
controlled by a software system that takes parameter readings
periodically and manages the data collected from the instruments.
•
37
The weather station’s
environment
38
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.
39
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.
40