
Introduction to Software Engineering
(Aerospace 440)

Course Next Offered: Spring 2009 ?
Dr. Lyle N. Long
Distinguished Professor of Aerospace Engineering and Mathematics,
The Pennsylvania State University
Certified Software Development Professional (IEEE Computer Society)
AIAA Fellow
http://www.personal.psu.edu/lnl
Course Description:
This course is an introduction to software engineering.
Software engineering includes
all aspects of professional software production, and is
especially important for
safety-critical and mission-critical software. It is also
crucial for very large complicated software projects. It includes
documentation, management,
processes, requirements, design models, computer programs,
validation, verification, cost estimation, management,
and other aspects of the development process. Aerospace
systems, including aircraft,
spacecraft, onboard avionics, ground-based systems, flight
simulators, and air
transportation systems, rely heavily on software. Software
is a major cost of all
aerospace systems. For example, the Boeing 777 has more
than 1000 onboard processors
and more than 4 million lines of software, which is
primarily written in Ada. The
F/A-22 fighter has more than 2 million lines of software
onboard, and much of this
is Ada also. The AirBus 380 has
500 kilometers (311 miles) of wire. Aerospace systems also demand a level of
reliability far beyond most
other systems, which means the software must be designed
using rigorous mission-critical
and safety-critical procedures, which makes the software
quite unique compared to most other
software. The FAA and DOD are both involved in certifying
aircraft software, for example
through the DO-178B and DOD-2168 standards.
The students will learn the fundamental components of software engineering,
and how complex software systems are developed so as to minimize errors and
maximize the usefulness of the software. They will also learn the terminology,
accepted practices, and procedures used in software engineering.
Objectives:
Students who successfully complete this course will be able to:
- Explain the importance of safety-, mission-, business-,
and security-critical systems;
- Demonstrate knowledge of the importance of good software
engineering practices for critical systems;
- Describe and explain the terminology, accepted practices,
and procedures used in software engineering;
- Explain the differences among software engineering, computer
science and systems engineering;
- Decide which computer languages are well suited to modern
critical systems (and explain why);
- Explain a variety of life-cycle models;
- Read and demonstrate an understanding of the software
engineering literature; and
- Demonstrate a basic understanding of the existing
standards (e.g. FAA and IEEE) applicable to software systems
Brief Description:
Software engineering for safety-
and mission-critical systems,
including requirements, management, processes, designs,
programming, validation/verification,
and other aspects of software development. 3 Credits.
Prerequisite CmpSc 201C (and/or AERSP 424)
Detailed course notes:
Required Textbook:
"Software Engineering," 8th Edition, Ian Sommerville
Additional Recommended Books and Papers
Course Outline:
- Introduction
- Mission- and Safety-Critical Systems
- Requirements Engineering
- Software Design (Object oriented, real-time, ...)
- Computer Languages (Ada, C++, and Java)
- Software Development, ReUse, and Evolution
- Verification, Validation, and Testing
- Project Management
- Software Cost Estimation
- Software Standards
- Emerging Technologies
- Guest speakers:
-
Phillip LaPlante, Penn State Great Valley (Feb. 12)
-
David Russell, Penn State Great Valley (Mar. 21)
-
A. Terry Morris, NASA Langley (Mar. 23)
-
Tom Gaska, Lockheed-Martin, Owego (April 2)
-
Ronald Kohl,
Software Engineering Institute, Apr. 23
-
Phillip LaPlante, Penn State Great Valley (Apr. 30,
3:35-4:25, 203 Sackett Bldg.)
Grading (tentative):
The students will be evaluated using a combination
of homework assignments, quizes,
exams, and a final exam. The weight given to each
will be roughly 5% class attendance/participation, 15% homework,
60% midterms, and 20% final. The instructor will
use a standard technology-based
classroom. There may also be team-based assignments,
and possibly team presentations.
The course will be offered every year.
Teaching Assistant: Oranuj Janrathitikarn (Email: ozj100)
Students auditing the course for credit will be required to
take the final exam, and get a C or better.
Also, I don't allow people to simply sit in on the course.
You will need to read and study
all webpage notes also check the
homework webpage regularly.
I might use Angel, so please go there and
upload a picture of yourself:
cms.psu.edu.
Notes:
This course can be used as a technical elective in Aerospace Engineering.
In addition, Aerospace Engineering students will need to take one of the
following courses to graduate: AERSP 440, EE 305, or EE 210. (you cannot
use 440 to satisy both this requirement and the IST Minor)
We also plan to make this course part of the proposed
Undergraduate Minor in IST for Aerospace Engineering
. Note: If you use AERSP 440 for the IST Minor, then you
will need to take EE 305 or EE 210 to satisfy the Aero
Major requirements.
This course can be used towards the
Graduate Minor in Computational
Science also.
Prerequisites:
You must have taken a course in computer programming (e.g. CS 201),
but it would be very valuable to have a more advanced course as well
(e.g. AERSP 424 ).
from:
http://www.personal.psu.edu/lnl/440pub
You are the 2180th visitor
since Sept. 30, 2006.
Last modified: Tuesday, 11-Mar-2008 02:54:49 EDT
|