Upload
vungoc
View
219
Download
1
Embed Size (px)
Citation preview
2
Overview
Learning Objectives
What is software engineering?
Why is software engineering important?
Professional and ethical considerations
3
By the end of this session, you will..
Understand what software engineering is
Understand why software engineering is important
Know answers to key questions related to the software
engineering discipline
Understand some professional and ethical issues that are
important to software engineers.
4
Activity
Think about all the devices and systems
that you encounter in your everyday life
which have software controlling them…
List as many as you can
Virtually all countries
depend on complex
computer-based
systems.
5
Why is Software Engineering important?
Complex systems need a disciplined approach for designing,
developing and managing them.
What could go wrong?
2009: Computer glitch delays flights
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayed
1996: Ariane 5 explosion (10 yrs $7billion)
http://www.youtube.com/watch?v=z-r9cYp3tTE
http://www.around.com/ariane.html
6
Software Engineering
Software Crisis
The term software engineering first appeared in the 1968
NATO Software Engineering Conference and was meant to
provoke thought regarding what was then called the “software
crisis”..
“.. 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 inot
use.” Sommerville, pg.7
7
Software Engineering vs. Computer Science
“Computer science is no more about computers than
astronomy is about telescopes.” Edsger Dijkstra
Computer Science
• Theory
• Fundamentals
Software Engineering
• Practicalities of software design, development and delivery
8
Software Engineering vs. Systems Engineering
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process eng.)
Focuses on how complex engineering projects should be designed and
managed
Systems Engineering
• All aspects of computer-based systems development:
• HW + SW + Process
Software Engineering
• Deals with the design, development and delivery of SW
10
What is a software process?
Activities and results that produce a software product:
SW Process Activity What is going on there?
SpecificationWhat does the customer need?What are the constraints?
Development Design & programming
Validation Checking whether it meets requirements
Evolution Modifications (e.g. customer/market)
11
What is a software process model?
Description of the software process that represents one view,
such as the activities, data or roles of people involved.
Examples of views Focus on…
WorkflowActivities = human actionsWhat is input, output, and dependencies
DataflowActivities = transformations of informationHow the input is transformed into output
Role/ActionWhat is the role of people involved in each step of the process?
12
Software process models
Waterfall approach Iterative development Component-Based Software Engineering CBSE
assembled form existing components
13
Cost distribution Custom software development (Bespoke)Software Model
Cost units
Cost distribution
Software development activity
Waterfall Model
0 25 50 75 100
Specification Design Development Integration and testing
Iterative Development
0 25 50 75 100
Specification Iterative Development System testing
Component-based Software Engineering
0 25 50 75 100
Specification Development Integration and testing
Development and evolution costs for long-lifetime systems
0 100 200 300 400
System development System evolution
14
Cost distribution Generic software development
Product development costs
0 25 50 75 100
Specification Development System testing
15
What is CASE?
Computer Aided Software Engineering
Programs that support
Requirements analysis
System modeling
Debugging
Testing
16
Attributes of good software
Functional attributes (performance; what the system does)
Non-functional attributes (quality; how the system does it)
Can you think of more attributes that may be significant?
Product Characteristic Description
Maintainability Evolution qualities such as Testability, extensibility
Dependability Reliability, security, safety
Efficiency Response time, processing time, memory utilization
Usability Easy to learn how to use the system by target users, Efficient to use the system by users to accomplish a taskSatisfying to use by intended users
17
Activity
What are the key attributes for..
Interactive game Banking system Cardiac monitor in an ICU unit
Players, score, scenes, theme,
Client accounts, stocks bonds, money transfers
heart rate, temperature, blood pressure
18
Challenges facing software engineering
Challenge Why? Software needs to ..
HeterogeneityDifferent computers, different platforms, different support systems
Cope with this variability
DeliveryBusinesses are more responsive supporting software needs to evolve as rapidly
Be delivered in shorter time without compromising quality
TrustSoftware is a part of many aspects of our lives (work, study, leisure)
Demonstrate that it can be trusted by users
19
Professional and ethical responsibility
Standards
Confidentiality
Competence
Intellectual property rights
Computer misuse
ACM/IEEE-CS Code of ethics
Public, Client/Employer, Product, Judgment, Management, Professions, Colleagues, Self
20
Case Study: ConfidentialityKhalid is a software engineer working for a Saudi telecom company. His team have recently solved a compatibility problem with the local infrastructure. This has given his company a competitive advantage over other local service providers. His friend, Fahd is a software engineer working for another telecom company and enquired about how
they solved the problem.
What should Khalid do? What are the consequences? Link your answers to the codes of ethics that we discussed in class.
21
Case Study:
Ethical DilemmaYou are the engineer on the design of the control system for
a medication system. You have added many safety
screens to the user interface in order to make sure that the
doctor or nurse has appropriately set the dosage. You also
add a safety feature in which the device stops working after
a certain period of time to make sure that it has been
Your calibrated in order to not deliver the incorrect dosage.
manager puts a lot of pressure on you to remove the
He believes that the company could out.-extra safety time
sell more units if the safety lock out wasn't installed in the
unit; the unit would cost less, and the users won't have to
confront a possibly annoying time out.
What do you do? What are the consequences? Link your
answers to the codes of ethics that we discussed in class.
Source: (Inacio, 1998 )
http://www.ece.cmu.edu/~koopman/des_s99/ethics/
22
Assignments
Group A: Describe an incident that occurred in our local context
which involved computer errors. Include the problem
description, its impact and your thoughts on where the
failure occurred and how it could have been avoided.
Group B: [Dr. Areej’s Section]
Find an incident that occurred in our local context which
involved computer errors. Bookmark it on the Cap312
Favilous social bookmarking site.
Due: March 8th 2010. The favilous account will not accept
bookmarks after 5pm March 8th
Why do you
think software
engineering is
important?