Download presentation
Presentation is loading. Please wait.
Published byHadley Kittredge Modified over 9 years ago
1
INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR
2
ADMINISTRATIVIA Assignment 4 solution is posted Group Project 1 is posted Site traffic and websites Office hours moved: Tuesday 3:30 – 5:30 (KMC 8-191) Office hours next week: Friday 3:30 – 5:30 (KMC 8-191)
3
LEARNING OBJECTIVES Explain why software engineering is difficult. Understand the process by which software product are created.
4
WHAT IS SOFTWARE?
5
INTERNAL SYSTEMS Accounting/billing Trading systems Human resources Customer relationship management Data mining Product/inventory management MANY MORE
6
BUILD OR BUY? WHY BUY? Time to use External support No risk of project failure Upgrades Network effects WHY BUILD? Customized, all requirements met
7
WHAT ARE THE COSTS?
8
SAAS: SOFTWARE AS A SERVICE software and associated data are centrally hosted on the cloud typically accessed by users using a thin client via a web browser $10B in sales in 2010 accounting, customer relationship management (CRM) enterprise resource planning (ERP), invoicing human resource management (HRM), content management (CM)
9
ESSENTIAL DIFFICULTIES 1.Complexity Hard to manage large teams Hard to understand system, side-effects 2.Conformity Software is expected to meet all users’ needs 3.Changeability Pressure/ability to change 4.Invisibility No way to see it all at once, visually
10
PAST BREAKTHROUGHS High-level languages Solve common problems and allow programmers to think less about how computer executes instructions (time-sharing) Unified programming environments Standardize how programmers work, make key decisions in advance
11
HOPES FOR SILVER Even higher-level languages: more expressive Object-oriented programming: re-usability of components Artificial intelligence: teach computers to do what programmers do Expert systems: use “rules” to improve development “Automatic” programming: generate a program from a problem Graphical programming: a visual metaphor for the program Program verification: find bugs before users do Environments and tools: reduce errors and streamline workflow
12
METHODOLOGIES Structure imposed on how software is developed. 1.Waterfall Model 2.Agile Methodology 3.Many more: RAD, TDD, Spiral
13
WATERFALL MODEL
14
“THE HARDEST SINGLE PART OF BUILDING A SOFTWARE SYSTEM IS DECIDING PRECISELY WHAT TO BUILD.” -- BROOKS REQUIREMENTS
16
SYSTEM DESIGN
17
OUTPUT: SPECIFICATION
18
IMPLEMENTATION
21
VERSION CONTROL
22
VERSION CONTROL SYSTEMS
25
VERIFICATION
27
MAINTENANCE 1.Add new features 2.Fix bugs as they come up 3.Improve performance 4.Scale to more users/data
28
“AGILE” METHODOLOGY
29
“THE MYTHICAL MAN-MONTH”
30
NEXT CLASS: MOBILE AND LOCATION Work on G1
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.