Sunteți pe pagina 1din 9

Ramesh 1

Chapter 1: Preview of Software


Engineering
Prof. Steven A. Demurjian
Computer Science & Engineering Department
The University of Connecticut
371 Fairfield Road, Box U-2155
Storrs, CT 06269-2155
steve@engr.uconn.edu
http://www.engr.uconn.edu/~steve
(860) 486 4818
(860) 486 3719 (office)
Ramesh 2
Overview of Chapter 1
Introduction to Software Engineering
What is Software?
What is Software Engineering?
What Does Software Engineering Do?
How is Software Engineered (Process)?
Software Engineering vs. Computer Science?
Designing/Building Systems for Today and Tomorrow
Recall CSE133 and CSE134 Ideas:
Abstract Data Types (ADTs), Core and Advanced Object-Oriented
Concepts, Benefits of OO
Introduce Ideas of Component-Based Design & Development
Discuss Software Engineering for Distributed Application/System
Development
Ramesh 3
What is Software?
Software is the Definition and Organization of a Set of
Tasks and Functionality Encapsulated into a Form that is
Executable on a Computer
What are Different Types of Software?
Commercial-Off-the-Shelf (COTS)
Government-Off-the-Shelf (GOTS)
Legacy: Written in an Old Programming Language
Cobol, PL/1 (Y2k/SNET), Fortran, etc.
C and C++!
Customized New Software
Client vs. Server Software
Database Management Systems/Applications
Ramesh 4
What is Software Engineering?
Engineering: The Application of Science to the Solution of Practical
Problems
Software Engineering: The Application of CS to Building Practical
Software Systems
Programming
Individual Writes Complete Program
One Person, One Computer
Well-Defined Problem
Programming-in-the-Small
Software Engineering
Individuals Write Program Components
Team Assembles Complete Program
Programming-in-the-Large
Ramesh 5
What is Software Engineering?
The Application Of Engineering To Software
Field of CSE Dealing with Software Systems
Large and Complex
Built By Teams
Exist In Many Versions
Last Many Years
Undergo Changes
Definitions:
Application of a Systematic, Disciplined, Quantifiable Approach to the
Development, Operation, and Maintenance of Software (IEEE 1990)
Multi-person Construction of Multi-version Software (Parnas 1978)

Ramesh 6
Why Software Engineering?
Program Complexity Transcends Individual or Lone
Programmer
Software Engineering Targeted for
Constructing Large Software Applications
Defining Problem Clear and Completely
Tools and Techniques to Support Process
Team-Oriented Experience
Software Engineering must Evolve to be an Engineering
Discipline
Software Engineering Must Promote and Support Multi-
Person Construction of Multi-Version Software
Ramesh 7
Software Engineering -
Historically
Early Days
1950s Programmers Wrote Programs
Early 1960s - Very Large Software Projects Constructed by Experts
Mid-Late 1960s - Advent of Large Commercial Software Applications
Large Systems Involved Teams of Individuals
Coining the Term Software Engineering
Towards a Software Engineering Discipline
Individuals Couldnt see Big Picture
Increase in Communication Time
Personnel Changes Impact on Productivity
SE: Management, Organization, Tools, Theories, Methodologies,
Techniques, etc.
Ramesh 8
Influences on Software
Engineering
Cost of Software Continues to Increase, Requiring More
Efficient Software Production
Software Acquisition vs. Outsourcing
Software Reuse vs. Build-from-Scratch
Complexity of Large Software Altered the View from
Development Perspective
Conception Design Development
Integration Distribution Documentation
Maintenance Evolution Extension
Software Engineering/Computer Science Growth
350,000 Information Technology Jobs Open
100,000 New Jobs per Year for 10 Years
Ramesh 9
Programmer vs. Software
Engineer
Individual with Good Skills
Programming-in-the-Small
Knowledge on
Data Structures
Algorithms
Fluent in Several
Programming Languages
May Lack Formal Training
Minimal Exposure to CS
Part of a Team
Programming-in-the-Large
Design Approaches
OO, Modules, etc.
Top-Down/Bottm-Up
Translates Requirements into
Specifications
Familiarity in Multiple
Application Areas
Converses with Users
Sees Big Picture
Can Model Application
Good Communication and
Interpersonal Skills

S-ar putea să vă placă și