S
CS 5380Software
Engineering
Course Description
This course will survey software engineering methods and processes, including requirements, architecture, design, implementation, verification, validation, maintenance, and management.
Instructor
Jesse Allen BSME, MSCS 29 years in software systems development
Software Systems: Civil Engineering, CAD, Gradebook, Custom
Web development: Company websites, Voter targeting systems, Non-profit websites
All aspects – management, research, design validation, verification, delivery, configuration management, documentation, support
(Instructor)
7 years teaching CIS, MCSE, A+, Net+ Web Development Computer Graphics Database Development
Course Schedule
Class Schedule Monday/Wednesday 6:00pm-7:20pm Except Labor Day
Location Chem/CS Room 1.0202
Syllabus
Introductions
Your background Undergraduate Degree Current program Experience - Software development project
Where – company, university What – position and what you did Environment – other aspects of software engineering you
have seen. How was it run What could be better
General Observations
New developers vastly underestimate the ways in which things can go wrong.
Software Development
Can be done by single person or small group
Can have an idea and start coding
This leaves a lot to be desired
What may be missing
Assurance that the software: Works in all cases The software meets the needs The software is expandable
New features New hardware
Can be maintained By others
(What may be missing)
Assurance that the software Meets standards
Coding Naming Legal Components
(What may be missing)
Software needs to be documented.
Software needs to meet usability guidelines
Software may be so large that small group cannot do it.
Software evolution must be controlled.
Development time may not be optimal
What is needed?
Discipline to make all of these things happen
Software Engineeringvs Compute Science
Author: Computer Science focuses on theory and fundamentals
Software Engineering is concerned with the practicalities of developing and delivering useful software
What is Software Engineering?
Question: What does Engineering mean to you Question: How is software Engineering different from
other engineering?
Software Engineering
Taught as a course of study at many universities
IEEE Computer Society SWEBOK http://www.computer.org/portal/web/swebok IEEE Computer Society CSDA – Certified Software Development Associate – for
graduates or those with 2 years experience CSDP – Certified Softaware Development Professional - 4
years experience or advanced degree and 2 years
Texas certifies software engineers
What is a profession?
Civil Engineer
Doctor
Lawyer
Accountant
What is a Profession?
IEEE SWEBOK: A profession is characterized by: An initial professional education in a curriculum
validated by society through accreditation Registration of fitness to practice via voluntary
certification or mandatory licensing Specialized skill development and continuing
professional education Communal support via a professional society A commitment to norms of conduct often prescribed in a
code of ethics
Engineers
To call yourself an engineer, you must be certified by the state
Texas does now have a Software Engineering classification
Reading: http://sce.uhcl.edu/helm/SWEBOK_IEEE/papers/
10%20reprint%205.pdf
Responsibility
We depend on professionals to be knowledgeable about their area and to do the right thing for us Doctors Lawyers Civil Engineers
Responsibility
We depend on software for assistance on critical functions Software controls critical equipment
Medical analysis, monitoring, life support Software controls critical, sensitive information
Financial records – banks, S&Ls, brokerages Medical records
So we must depend upon professionals to know their subject and to do the right thing for us.
Responsibilities
Give Examples: Software Area Potential problems Consequences