L2 Fundamental Knowledge
L2 Fundamental Knowledge
Engineering
Lecture 2
Topics covered
2
Frequently asked question : Software Engineering
Question Answer
3
Frequently asked question : Software Engineering
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software engineering? Roughly 60% of software costs are development costs, 40%
are testing costs. For custom software, evolution costs often
exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require a
complete and analyzable specification to be developed. You
can’t, therefore, say that one method is better than another.
What differences has the web made to The web has led to the availability of software services and
software engineering? the possibility of developing highly distributed service-
based systems. Web-based systems development has led to
important advances in programming languages and
software reuse.
4
Essential attributes of good software
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.
Efficiency Software should not make wasteful use of system resources such as memory
and processor cycles. Efficiency therefore includes responsiveness,
processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
5
Software process activities
6
General issues that affect most software
• Heterogeneity
– Increasingly, systems are required to operate as distributed systems
across networks that include different types of computer and
mobile devices.
• Business and social change
– Business and society are changing incredibly quickly as emerging
economies develop and new technologies become available. They
need to be able to change their existing software and to rapidly
develop new software.
• Security and trust
– As software is intertwined with all aspects of our lives, it is essential
that we can trust that software.
7
Software engineering diversity ####02
8
Application types
• Stand-alone applications
– These are application systems that run on a local computer, such as a
PC. They include all necessary functionality and do not need to be
connected to a network.
• Interactive transaction-based applications
– Applications that execute on a remote computer and are accessed by
users from their own PCs or terminals. These include web
applications such as e-commerce applications.
• Embedded control systems
– These are software control systems that control and manage
hardware devices.Numerically, there are probably more embedded
systems than any other type of system.
9
Application types
10
Application types
11
E-Commerce
12
Embedded control systems
13
Batch processing systems
14
Entertainment systems
15
Systems for modelling and simulation
16
Software Engineering: The Fundamental Principles
17
Software engineering and the web
• The Web is now a platform for running application and organizations
are increasingly developing web-based systems rather than local
systems.
19
Key points
• Software engineering is an engineering discipline that is concerned with
all aspects of software production.
20
Key points
21
Software engineering Ethics
22
Issues of professional responsibility
• Confidentiality
– Engineers should normally respect the confidentiality of
their employers or clients irrespective of whether or not
a formal confidentiality agreement has been signed.
• Competence
– Engineers should not misrepresent their level of
competence. They should not knowingly accept work
which is out with their competence.
23
Issues of professional responsibility
26
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
• 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
• 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
• 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
37
The weather station’s environment
38
Weather information system
40
Additional software functionality###03
41
Generic View of Process
– Timely Delivery
– High quality Result
42
Layered Technology of Software Engineering
Tools
Method
Process
Quality Focus
43
Layers of Software Engineering
Quality Focus
At first ensure the professional quality
Process
Enable timely delivery through framework and work products(models,
docs, report etc.)
Ensure technical method
Ensure the model and change is properly managed
Method
Define “how to” ’s and define broad array of tusks
Include communication, analysis, designing, program construction, testing
and support.
Tools
Provide support for the process and method.
44
Software Process Framework
Activity
45
46
47
48
49
50
Framework Process
• Communication
• Planning
• Modeling
• Construction
• Deployment
51
Umbrella Activities
52
• Umbrella activities
Typical umbrella activities are:
1. Software project tracking and controlIn this activity, the developing team accesses
project plan and compares it with the predefined schedule.
If these project plans do not match with the predefined schedule, then the required
actions are taken to maintain the schedule.
2. Risk managementRisk is an event that may or may not occur.
If the event occurs, then it causes some unwanted outcome. Hence, proper risk
management is required.
3. Software Quality Assurance (SQA)SQA is the planned and systematic pattern of
activities which are required to give a guarantee of software quality.
For example, during the software development meetings are conducted at every stage of
development to find out the defects and suggest improvements to produce good quality
software.
53
4. Formal Technical Reviews (FTR)FTR is a meeting conducted by the technical
staff.
The motive of the meeting is to detect quality problems and suggest
improvements.
The technical person focuses on the quality of the software from the customer
point of view.
5. MeasurementMeasurement consists of the effort required to measure the
software.
The software cannot be measured directly. It is measured by direct and indirect
measures.
Direct measures like cost, lines of code, size of software etc.
Indirect measures such as quality of software which is measured by some other
factor. Hence, it is an indirect measure of software.
54
6. Software Configuration Management (SCM)It manages the effect of change
throughout the software process.
7. Reusability managementIt defines the criteria for reuse the product.
The quality of software is good when the components of the software are
developed for certain application and are useful for developing other
applications.
8. Work product preparation and productionIt consists of the activities that
are needed to create the documents, forms, lists, logs and user manuals for
developing a software.
55
Essence of Software Engineering Practice
56
General principles
57
Key points
• Professional societies publish codes of conduct which set out the standards of
behaviour expected of their members.
58