Lecture 1 Dr. Tom Way CSC 4700 1 Introduction Dr. Tom Way CSC - - PDF document

lecture 1
SMART_READER_LITE
LIVE PREVIEW

Lecture 1 Dr. Tom Way CSC 4700 1 Introduction Dr. Tom Way CSC - - PDF document

What is Software Engineering? CSC 4700 Software Engineering Lecture 1 Dr. Tom Way CSC 4700 1 Introduction Dr. Tom Way CSC 4700 2 Software engineering Facts Fact : The economies of ALL developed nations are dependent on software.


slide-1
SLIDE 1
  • Dr. Tom Way

CSC 4700 1

What is Software Engineering?

CSC 4700 Software Engineering

Lecture 1

  • Dr. Tom Way

CSC 4700 2

Introduction

  • Dr. Tom Way

CSC 4700 3

Software engineering Facts

  • Fact: The economies of ALL developed nations are

dependent on software.

  • Fact: More and more systems are software

controlled

  • Fact: Expenditure on software represents a

significant fraction of GNP in all developed countries.

  • Fact: Software often costs more than the

computer it runs on.

  • Fact: Software costs more to maintain than to

develop

slide-2
SLIDE 2
  • Dr. Tom Way

CSC 4700 4

What is software?

Software is:

  • Computer programs
  • Source code
  • Executables, binaries, runtimes
  • Associated documentation
  • Requirements
  • Design models
  • User manuals
  • Dr. Tom Way

CSC 4700 5

What is software engineering?

  • Software engineering (SE) is the design,

development, and documentation of software by applying technologies and practices from computer science, project management, engineering, application domains, interface design, digital asset management and other fields.

  • Term was invented in 1968
  • Used to be called “programmer” or “systems

analysis”

  • Dr. Tom Way

CSC 4700 6

More definitions

  • A discipline whose aim is the production
  • f quality software, delivered on time,

within budget, and satisfying users' needs.

  • The specification, development,

management, and evolution of software systems.

  • Designing and developing high-quality

software

slide-3
SLIDE 3
  • Dr. Tom Way

CSC 4700 7

Why do we need Software Engineering?

  • Software is big business
  • Bad software is expensive to a company
  • Stakes are very high
  • Having a good plan and good process

improves chances for success

  • Lots of high paying jobs in software
  • Dr. Tom Way

CSC 4700 8

Careers

  • Dr. Tom Way

CSC 4700 9

Why are you here?

  • Major or minor requirement
  • Software engineer
  • Graduate school
  • Starting a business
  • What can you do with this knowledge?
  • 7 of 10 fastest growing careers are in software

and computing

  • The off-shore myth
slide-4
SLIDE 4
  • Dr. Tom Way

CSC 4700 10

Software Engineering Today

  • Software Engineering

An engineering discipline that includes:

  • Software Engineering Management
  • Software Requirements Analysis
  • Software Configuration Management
  • Software Design
  • Software Construction
  • Software Testing
  • Software Engineering Infrastructure
  • Software Engineering Process
  • Software Evolution and Maintenance
  • Software Quality Analysis

Source: SWEBOK –http://www.swebok.org/

  • Dr. Tom Way

CSC 4700 11

So Soft ftware ware En Engine gineering ering Bo Body dy of

  • f

Kn Knowled

  • wledge

ge

Computing Fundamentals Software Product Engineering Software Management Software Domains

Source: http://www.sei.cmu.edu

Algorithms and Data Structures Computer Architecture Mathematical Foundations Operating Systems Programming Languages Requirements Engineering Software Design Software Coding Software Testing Software Ops& Maint Project Process Management Risk Management Quality Management Configuration Management

  • Dev. Process

Management Acquisition Management Artificial Intelligence Database Systems Human-Computer Interaction Numerical & Symbolic Comp. Computer Simulation Real-Time & Embedded Systems Compilers

  • Dr. Tom Way

CSC 4700 12

Software Engineering Jobs/Roles

  • Systems Analyst -- analyzes requirements for an application,

many also do business case analysis (economic analysis)

  • Software Architect – designs the overall structure of the

application

  • Software Network Specialist – LAN/WAN Network design,

installation, maintenance

  • Software Programmer – implements the design using software

development tools, COTS software products, and computer languages

  • Software Systems Administrator – administers user accounts,

technology refreshment, software deployment to users, software problem solvers

  • Software Database Administrator – administers the database

(installation, maintenance, backup, refreshment)

slide-5
SLIDE 5
  • Dr. Tom Way

CSC 4700 13

Software Engineering Jobs/Roles (cont’d)

  • Customer Support Engineer – solves customer, end-user problems

with computer applications, configuration (e.g. ISP)

  • Webmaster – designs, implements, and maintains a web site
  • Software Security Engineer – identification, authorization,

authentication, data protection, data integrity, CERT)

  • Software Tester (independent verification and validation – e.g.

NASA IV&V Facility, South Fairmont)

  • Software Project Manager –plan, organize, direct, coordinate,

control a software project (emphasis on risk management)

  • Software Configuration Manager – identify, change control, status

accounting, audits and reviews

  • Software Quality Manager/Engineer – software reliability

modeling, statistical quality control, defect analysis

  • Dr. Tom Way

CSC 4700 14

It's all about the process

  • Dr. Tom Way

CSC 4700 15

The Software Engineering Project

  • Project origins: Client, start-up, corporate, brainstorming
  • Organizing a team: hiring, responsibilities, specialties, pay
  • Process:
  • Design & Architecture: hardware, languages, tools, details
  • Tools: design, compilers, IDEs, version control, project management
  • Specification: what does it do? how do we know it works?
  • Development: team roles, tasks, meetings, progress
  • Milestones: daily, weekly, monthly, etc.
  • Documentation: the spec, release notes, comments, user manuals
  • Quality Assurance: testing, verification & validation
  • Packaging & Delivery
  • Maintenance & Support
  • Marketing & Sales
slide-6
SLIDE 6
  • Dr. Tom Way

CSC 4700 16

Activity

Write up the specification (sequence of steps) for making a peanut butter sandwich. Your steps will be followed by someone else. Supplies:

  • loaf of bread
  • jar of peanut butter
  • paper plate
  • knife