INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR.

Post on 15-Jan-2016

215 views 0 download

Tags:

Transcript of INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR.

INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETYSESSION 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)

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

WHAT IS SOFTWARE?

INTERNAL SYSTEMS

• Accounting/billing

• Trading systems

• Human resources

• Customer relationship management

• Data mining

• Product/inventory management

• MANY MORE

BUILD OR BUY?

WHY BUY?

• Time to use

• External support

• No risk of project failure

• Upgrades

• Network effects

WHY BUILD?

• Customized, all requirements met

WHAT ARE THE COSTS?

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

1. Complexity

• Hard to manage large teams• Hard to understand system, side-effects

2. Conformity

• Software is expected to meet all users’ needs3. Changeability

• Pressure/ability to change4. 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.

1. Waterfall Model

2. Agile Methodology

3. Many more: RAD, TDD, Spiral

WATERFALL MODEL

“THE HARDEST SINGLE PART OF BUILDING A SOFTWARE SYSTEM IS DECIDING PRECISELY WHAT TO BUILD.” -- BROOKS

REQUIREMENTS

SYSTEM DESIGN

OUTPUT: SPECIFICATION

IMPLEMENTATION

VERSION CONTROL

VERSION CONTROL SYSTEMS

VERIFICATION

MAINTENANCE

1. Add new features

2. Fix bugs as they come up

3. Improve performance

4. Scale to more users/data

“AGILE” METHODOLOGY

“THE MYTHICAL MAN-MONTH”

NEXT CLASS:MOBILE AND LOCATION

Work on G1