Chapter 1 Software and Software Engineering Discussion of the Software Product

advertisement
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Chapter 1
Software and Software Engineering
Discussion of the Software Product
and Software Engineering
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Evolution
• The role of software in the information age.
• Information and knowledge are the focal point for power in the
21st century.
• Software is being part of most daily activities.
• Software is an integral part of many types of systems (medical,
telecom, avionic, military, transportation, etc…).
• Software is now a vast industry with significant economic
power.
• The “law of unintended consequences” and computer
software.
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
The Dual Role of Software
• Software is product that
– delivers computing potential across networks of hardware.
– transforms information - produces, manages, acquires,
modifies, displays, or transmits information.
•
Software is vehicle for delivering a product (information)
–
–
–
–
provides system functionality (e.g., payroll system)
controls other software (e.g., an operating system)
effects communications (e.g., networking software)
helps build other software (e.g., software tools)
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Development
• Computer-based systems are more complex than ever.
• Require sophisticated software programs (complexity issue).
• Shift from “lone programmer” to “software engineering team”
However, some of the questions still being asked today are:
– Why does it take long to finish a software project?
– Why development cost is always high?
– Why cannot all errors be found before the software is delivered to
the customer?
– Why it is difficult to measure progress during software
development?
These questions lead to developing Software Engineering
Framework and practices.
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
What is a Software Product?
• What is Computer Software?
Computer programs (instructions) that execute to perform a
specified task.
A set of items or objects that form a “configuration” that
includes programs, documents, and data.
• Is software different than other things we build?
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Characteristics (1)
• Software is engineered, but not manufactured
– Both aim for high quality through good design
– Engineering is a different approach than manufacturing
• quality issue
• cost issue
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Characteristics (2)
• Software doesn’t wear out, but it deteriorates
Failure
rate
Infant
Mortality
Wear Out
Hardware
Product
Time
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Characteristics (3)
Software
Product
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Characteristics (3)
• Software is more complex to maintain
– Most software is custom built
– Software has no spare parts
– Immature component-based development (lack of
standards)
– Software reuse is evolving, but not a “natural/integral part “
of the development process (mostly interface components)
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Application (1)
• Software applicability is very wide, leading to more SE
challenges.
• Generic categories of software applications:
– Systems Software (services other programs)
Operating systems, Compilers, Editors, Device drivers,
Communication software, Search agents, etc…
– Application Software (processes real-time events)
Traffic control, Weather applications, Avionics, Control
systems, etc..
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Application (2)
– Engineering/Scientific Software (process complex
calculations - number crunching)
Simulation, VR, Mineral exploration, molecular biology,
space exploration, etc…
– Embedded Software (controls devices - read-only)
Consumer appliances, Household devices, Vehicles, etc…
– Business (product-line) Software (process business
information and databases - MIS systems)
Payroll, Shipping, Accounting, Inventory, Banking, Financial
transactions, Word-Processing, Multimedia, etc…
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Application (3)
– Web Applications (supports web development)
Webpage builders, Browsers, e-Commerce, B2B, etc…
– PC Software (packaged software)
Word processor, Database, Editors, Graphics software, etc,…
– AI Software (implements non-numeric algorithms)
Expert systems, Pattern recognition, Games, Robotics, etc…
– Ubiquitous computing - Wireless networks and applications
for small devices to communicate.
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
New Software Categories
– Netsourcing - the Web as a computing engine.
Applications for end-user to make use of the Web engine.
(personal planning applications)
– Open source - ”free” source code open to the computing
community (a blessing, but also a potential curse!)
– Other categories - non-numeric algorithms:
Data mining, Grid computing, and Cognitive machines
The challenge: Building applications that can accommodate
future changes in technology, business, and end-user needs.
(the law of unintended consequences)
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Legacy Systems
• Developed decades ago and frequently modified.
• Quality issues.
• Why it must be changed?
– software must be adapted to meet the needs of new computing
environments or technology.
– software must be enhanced to implement new business
requirements.
– software must be extended to make it interoperable with other
more modern systems or databases.
– software must be re-architected to make it viable within a network
environment.
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Cost of Change
60-100x
1.5-6x
1x
Definition
Development
After release
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Software Challenges
• How do we ensure the quality of the software that we
produce?
• How do we meet growing demand and still maintain budget
control?
• How do we upgrade an aging "software plant”?
• How do we avoid disastrous time delays?
• How do we successfully institute new software technologies?
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
In summary…
- Software has evolved to a large industry
- The industry requires engineering practices
- The practices are based on established processes
- The processes form a framework for building
high quality software systems…
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Something to Think About…
• How does software differ from products produced by other
engineering discipline?
• Differentiate software characteristics from those of hardware.
• What do we mean by software crisis? Many books authored
on software failure.
• Read Software Myths in the book and think of other new
myths.
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Suggested Problems
Try to work problems 1.1, 1.2, 1.3, 1.5, 1.6, 1.11, and
1.12, page 17.
No submission is required for practice assignments.
Work it for yourself!
CS 3610: Software Engineering – Fall 2009
Dr. Hisham Haddad – CSIS Dept.
Last Slide
End of chapter 1
Download