slide 1 cs 310 software engineering professor c. shilepsky spring 2008 ccs/310/cs310.htm chapter 1 u...
TRANSCRIPT
Slide 1
CS 310 Software Engineering
Professor C. Shilepsky
Spring 2008http://aurora.wells.edu/~ccs/310/cs310.htm
Chapter 1
define software engineering and explore its importance
professional and ethical responsibility
Slide 2
How This Course Differs From 132 and 330
Emphasis on planning and management
• how would you develop a network for Wells?
Tools to manage complexity
• a wonderful collection of methods and models
Technical documentation
• how would you document the Wells network?
No coding
Slide 3
1.1.1 What is Software
Generic products
• stand-alone systems which are produced by a development organization and sold on the open market to any customer
Bespoke (customized) products
• systems which are commissioned by a specific customer and developed specially by a contractor
Most money spent on generic products but most development effort is on bespoke systems
Current emphasis on• embedded or adapted COTS (commercial-off-the-shelf-software)
• web services (XML, SOAP)
Slide 4
The systematic, disciplined, and quantifiable approach to the
development, operation, maintenance and retirement of software
Not about programming• rather everything that goes into developing large systems
Engineering: making things work
About managing complexity
• how do people build a system whose complexity exceeds the capacity of any one person to understand it
1.1.2 What is Software Engineering
Slide 5
Many systems are software controlled
Economies of ALL developed nations depend on software
Software expenditures are a significant fraction of the GNP
Problem: software is consistently late, over budget, and buggy why?
Why is Software Engineering Important?
Slide 6
CS, SE, and System Engineering
Computer science: theories and models that underlie computers
• e.g. data structures, discrete math, analysis of algorithms...
Software engineering:
• how to build a software system
• CS theory not enough
• e.g. flight-control software
System engineering: how to build a complex system that may include software
• e.g. an airplane has hardware and software
Slide 7
1.1.5 Software Process
Activities required to develop a software system
• specification (what are the requirements)
• development (design and code)
• validation (test)
• evolution
Variation depending on the organization
and the type of system being developed
1.1.6 software process model - later
Slide 8
1.1.8 Software Engineering Methods
Approaches to developmentCS 132 methods:• functional decomposition
• object-oriented programming
Some are a bit like religion
1.1.9 Computer Aided Software Eng. (CASE)
Tools to assist developmentE.g. the C++ development environment There is more
Slide 9
1.1.10 Software Product Attributes
Maintainability:
• software should be able to evolve to meet changing requirements
Dependability:
• software should not cause physical or economic damage in the event of failure
Efficiency
• software should not waste system resources
Usability
• software should have an appropriate user interface and documentation
Slide 10
1.1.11 Software Engineering Challenges
Legacy systems
• it is difficult to maintain and update old systems
Heterogeneity
• systems need to operate on different hardware in different environments
Delivery
• it takes longer to build a good system than customers want to allow
What else?
Slide 11
1.2 Professional and Ethical Responsibility
What do these mean?
• confidentiality
• competence
• intellectual property rights
• computer misuse
Have you ever run into a question with one of them?
What would you deal with the following?
• disagreement with the scheduling practices of senior management
• release of a safety-critical system without finishing system testing
• developing military weapons systems or systems for chemical warfare
Slide 12
Miscellaneous
Examples I will use (from Digicomp Research) Air surveillance and control system
radars gather information about planes in their area
system integrates airplane plots and tracks to present an air picture to controllers who manage different spaces
MH54J helicopter avionicssensor information (altitude, speed, direction) and pilot flight plan and
commands integrated to manage the helicopter
Some text and figures in the slides are from Sommerville