1 / 20

Chapter 1 Software and Software Engineering Discussion of the Software Product

Chapter 1 Software and Software Engineering Discussion of the Software Product and Software Engineering. Software Evolution The role of software in the information age. Information and knowledge are the focal point for power in the 21 st century.

mnoyes
Download Presentation

Chapter 1 Software and Software Engineering Discussion of the Software Product

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1 Software and Software Engineering Discussion of the Software Product and Software Engineering

  2. 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.

  3. 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)

  4. 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.

  5. 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?

  6. 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

  7. Infant Mortality Wear Out Failure rate Time Software Characteristics (2) • Software doesn’t wear out, but it deteriorates Hardware Product

  8. Software Characteristics (3) Software Product

  9. 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)

  10. 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..

  11. 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…

  12. 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.

  13. 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)

  14. 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.

  15. 60-100x 1.5-6x 1x After release Development Definition Cost of Change

  16. 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?

  17. 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…

  18. 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.

  19. 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!

  20. Last Slide End of chapter 1

More Related