Good product, bad product? Making the case for product levies
The Product
Transcript of The Product
THE PRODUCT
Muhammad Adil Raja
Roaming Researchers, Inc.
cbna
April 19, 2015
OUTLINE
1 INTRODUCTION
2 THE EVOLVING ROLE OF SOFTWARE
3 SOFTWARE
4 SOFTWARE CRISIS
5 REFERENCES
OUTLINE
1 INTRODUCTION
2 THE EVOLVING ROLE OF SOFTWARE
3 SOFTWARE
4 SOFTWARE CRISIS
5 REFERENCES
OUTLINE
1 INTRODUCTION
2 THE EVOLVING ROLE OF SOFTWARE
3 SOFTWARE
4 SOFTWARE CRISIS
5 REFERENCES
OUTLINE
1 INTRODUCTION
2 THE EVOLVING ROLE OF SOFTWARE
3 SOFTWARE
4 SOFTWARE CRISIS
5 REFERENCES
OUTLINE
1 INTRODUCTION
2 THE EVOLVING ROLE OF SOFTWARE
3 SOFTWARE
4 SOFTWARE CRISIS
5 REFERENCES
INTRODUCTION
SOFTWARE
Computer software has become a driving force. It is the enginethat drives business decision making. It serves as the basis formodern scientific investigation and services. It is embedded insystems of all kinds: transportation, medical, telecom- neeringproblem solving. It is a key factor that differentiates modernproducts and munications, military, industrial processes,entertainment, office products, · · · the list is almost endless.Software is virtually inescapable in a modern world. And as wemove into the twenty-first century, it will become the driver fornew advances in everything from elementary education togenetic engineering.
A FEW FAQS ABOUT SOFTWARE I
• What is it? Computer software is the product that softwareengineers design and build. It encompasses programs thatexecute within a computer of any size and architecture,documents that encompass hard-copy and virtual forms,and data that combine numbers and text but also includesrepresentations of pictorial, video, and audio information.
• Who does it? Software engineers build it, and virtuallyeveryone in the industrialized world uses it either directly orindirectly.
• Why is it important? Because it affects nearly everyaspect of our lives and has become pervasive in ourcommerce, our culture, and our everyday activities.
A FEW FAQS ABOUT SOFTWARE II
• What are the steps? You build computer software like youbuild any successful product, by appllying a process thatleads to a high-quality result passes programs that meetsthe needs of the people who will use the product. Youapply a software engineering approach.
• What is the work product? From the point of view of asoftware engineer, the work product is the programs,documents, and data that are computer software. But fromthe user’s viewpoint, the work product is the resultantinformation that somehow makes the user’s world better.
• How do I ensure that I’ve done it right? Attend theremainder of this course, select those ideas applicable tothe software that you build, and apply them to your work
THE EVOLVING ROLE OF SOFTWARE
• The role software plays in our lives has dramaticallychanged over the past decades.
• Why does it take so long to get software finished?• Why are development costs so high?• Why can’t we find all the errors before we give the software
to customers?• Why do we continue to have difficulty in measuring
progress as software is being developed?
SOFTWARE
DEFINITION
Software is (1) instructions (computer programs) that whenexecuted provide desired function and performance, (2) datastructures that enable the programs to adequately manipulateinformation, and (3) documents that describe the operation anduse of the programs.
SOFTWARE CHARACTERISTICS
• Software is developed or engineered, it is notmanufactured in the classical sense.
• Software doesn’t “wear out”.• Although the industry is moving toward component-based
assembly, most software continues to be custom built.
SOFTWARE APPLICATIONS I
SYSTEM SOFTWARE: System software is a collection ofprograms written to service other programs.
• Some system software process complex, butdeterminate, information structures.
• e.g., compilers, editors, and file managementutilities.
• Other systems applications process largelyindeterminate data.
• e.g., operating system components, drivers,telecommunications processors.
SOFTWARE APPLICATIONS II
• In either case, the system software area ischaracterized by heavy interaction withcomputer hardware; heavy usage by multipleusers; concurrent operation that requiresscheduling, resource sharing, andsophisticated process management; complexdata structures; and multiple externalinterfaces.
REAL-TIME SOFTWARE: Software thatmonitors/analyzes/controls real-world events asthey occur is called real time.
SOFTWARE APPLICATIONS III
• Elements of real-time software include a datagathering component that collects andformats information from an externalenvironment, an analysis component thattransforms information as required by theapplication, a control/output component thatresponds to the external environment, and amonitoring component that coordinates allother components so that real-time response(typically ranging from 1 millisecond to 1second) can be maintained.
BUSINESS SOFTWARE: Business information processing is thelargest single software application area.
SOFTWARE APPLICATIONS IV
• Discrete “systems” (e.g., payroll, accountsreceivable/payable, inventory) have evolvedinto management information system (MIS)software that accesses one or more largedatabases containing business information.
• Applications in this area restructure existingdata in a way that facilitates businessoperations or management decision making.
• In addition to conventional data processingapplication, business software applicationsalso encompass interactive computing (e.g.,point-of-sale transaction processing).
ENGINEERING AND SCIENTIFIC SOFTWARE: Engineering andscientific software have been characterized by“number crunching” algorithms.
SOFTWARE APPLICATIONS V
• Applications range from astronomy tovolcanology, from automotive stress analysisto space shuttle orbital dynamics, and frommolecular biology to automatedmanufacturing.
• However, modern applications within theengineering/scientific area are moving awayfrom conventional numerical algorithms.
• Computer-aided design, system simulation,and other interactive applications have begunto take on real-time and even system softwarecharacteristics.
EMBEDDED SOFTWARE: Intelligent products have becomecommonplace in nearly every consumer andindustrial market.
SOFTWARE APPLICATIONS VI
• Embedded software resides in read-onlymemory and is used to control products andsystems for the consumer and industrialmarkets.
• Embedded software can perform very limitedand esoteric functions (e.g., keypad controlfor a microwave oven) or provide significantfunction and control capability (e.g., digitalfunctions in an automobile such as fuelcontrol, dashboard displays, and brakingsystems).
PERSONAL COMPUTER SOFTWARE: The personal computersoftware market has burgeoned over the past twodecades.
SOFTWARE APPLICATIONS VII
• Word processing, spreadsheets, computergraphics, multimedia, entertainment,database management, personal andbusiness financial applications, externalnetwork, and database access are only a fewof hundreds of applications.
WEB-BASED SOFTWARE: The Web pages retrieved by abrowser are software that incorporates executableinstructions (e.g., CGI, HTML, Perl, or Java), anddata (e.g., hypertext and a variety of visual andaudio formats).
• In essence, the network becomes a massivecomputer providing an almost unlimitedsoftware resource that can be accessed byanyone with a modem.
SOFTWARE APPLICATIONS VIII
ARTIFICIAL INTELLIGENCE SOFTWARE: Artificial intelligence (AI)software makes use of nonnumerical algorithms tosolve complex problems that are not amenable tocomputation or straightforward analysis.
• Expert systems, also called knowledge-basedsystems, pattern recognition (image andvoice), artificial neural networks, theoremproving, and game playing are representativeof applications within this category.
SOFTWARE CRISIS
DEFINITION
Our imaginations and what the software to be able to do largelyoutstrips our capabilities.
• Software Myths.
SUMMARY
• Software has become the key element in the evolution ofcomputer-based systems and products.
• Over the past 50 years, software has evolved from aspecialized problem solving and information analysis toolto an industry in itself.
• But early “programming” culture and history have created aset of problems that persist today.
• Software has become the limiting factor in the continuingevolution of computer-based systems.
• Software is composed of programs, data, and documents.• Each of these items comprises a configuration that is
created as part of the software engineering process.• The intent of software engineering is to provide a
framework for building software with higher quality.
REFERENCES
• Images and content for developing these slides have beentaken from the follwoing book.
• Software Engineering: A Practitioner’s Approach, Roger S.Pressman.
• This presentation is developed using Beamer:• Pittsburgh, monarca.