03 Software Conceots-1
03 Software Conceots-1
Engineering
1
• Complex systems need a disciplined approach for designing, developing
and managing them.
2
Programs
Software
System
Documentation
Data Documentation
User
Documentation
3
Attributes of good software
• Functional attributes (performance; what the system does).
• Non-functional attributes (quality; how the system does it).
Product Characteristic Description
Maintainability Evolution qualities such as Testability, extensibility.
Dependability Reliability, security, safety.
Efficiency Response time, processing time, memory utilization.
Easy to learn how to use the system by target users.
Efficient to use the system by users to accomplish a task.
Usability Satisfying to use by intended users.
4
Software Categories
System software
acts as tools to help construct or support applications software.
Examples: operating systems, databases, networking software, compilers.
Applications software
Performs some directly useful or enjoyable task.
Examples :games, the software for automatic teller machines (ATMs), the
control software in an airplane, e-mail software, word processors,
spreadsheets.
5
Types of Software
• Generic products
• Stand-alone systems that are marketed and sold to any customer who wishes to buy
them.
• Examples – PC software such as graphics programs, project management tools; CAD
software; software for specific markets such as appointments systems for dentists.
• The specification of what the software should do is owned by the software
developer and decisions on software change are made by the developer.
• 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.
• The specification of what the software should do is owned by the customer for the
software and they make decisions on software changes that are required.
6
What is Software Engineering?
•Engineering approach to develop software.
•Software Engineering is the science and art of building significant
software systems that are:
1) on time.
2) on budget.
3) with acceptable performance.
4) with correct operation.
•An engineering discipline that is concerned with all aspects of
software production from the early stages of system specification
to maintaining the system after it has gone into use.
7
The Role of Software
Engineering
A bridge from customer needs to programming implementation
Programmer
Customer
Customer
8
Why Study Software Engineering?
• To acquire skills to develop large programs.
• Exponential growth in complexity and difficulty level with size.
10
Example 1: 2009,Computer
glitch delays flights
Saturday 3rd October 2009-London,
England (CNN)
• Dozens of flights from the UK were
delayed Saturday after a glitch in an air
traffic control system in Scotland, but the
problem was fixed a few hours later.
• The agency said it reverted to backup
equipment as engineering worked on the
system.
• The problem did not create a safety issue
but could cause delays in flights.
11
• Read more at:
Example 2: Ariane 5 Explosion
http://www.youtube.com/watch?v=z-r9cYp
3tTE
12
Example 3: 1992, London
Ambulance Service
• Overloaded problem.
14
Software Process
a sequence of activities that leads to the production of a software
product. There are four fundamental activities that are common to
all software processes.
Requirements
Requirements
Design
Design
Implementation
Implementation
Integration
Integration
Validation
Validation
Deployment
Deployment
16
Evolutionary Process Model
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
17
Spiral Process Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Ri s k
REVIEW analys i s Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
18
Agile Model
19
Software Documentation
For software to be used properly and maintained efficiently,
documentation is needed. Documentation is an ongoing process.
1. Confidentiality:
Respect the confidentiality of employers or clients irrespective of
whether or not a formal confidentiality agreement has been signed.
2. Competence:
Should not misrepresent the level of competence. Should not
knowingly accept work that is outside person competence.
23
3. Intellectual property rights:
Should be aware of local laws governing the use of intellectual property
such as patents and copyright. Should be careful to ensure that the
intellectual property of employers and clients is protected.
4. Computer misuse:
Should not use technical skills to misuse other people’s computers.
Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of viruses
or other malware).
24