300 likes | 422 Views
Information technology in business and society. Session 20 – HoW Software iS Made Sean J. taylor. 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)
E N D
Information technology in business and society Session 20 – HoW Software iS Made Sean J. taylor
Administrativia • Assignment 4solution 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)
Learning Objectives • Explain why software engineering is difficult. • Understand the process by which software product are created.
Internal Systems • Accounting/billing • Trading systems • Human resources • Customer relationship management • Data mining • Product/inventory management • MANY MORE
Build or Buy? Why Buy? Why Build? Customized, all requirements met • Time to use • External support • No risk of project failure • Upgrades • Network effects
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)
Essential Difficulties • Complexity • Hard to manage large teams • Hard to understand system, side-effects • Conformity • Software is expected to meet all users’ needs • Changeability • Pressure/ability to change • Invisibility • No way to see it all at once, visually
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
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
Methodologies • Structure imposed on how software is developed. • Waterfall Model • Agile Methodology • Many more: RAD, TDD, Spiral
Requirements “The hardest Single part of building a software System is deciding precisely what to build.” -- Brooks
Maintenance • Add new features • Fix bugs as they come up • Improve performance • Scale to more users/data
Next Class:Mobile and Location • Work on G1