This course is an introduction to software engineering as
practiced in industry, with emphasis on understanding the nature of software
engineering, the software engineering process, and the problems and solutions
manifest in real software development and modification projects. Different
models of the software engineering process are compared and contrasted. Current
best practices in software engineering and various approaches to software
process improvement are presented.
You will study several software development models and processes applicable to large and small projects. Starting with the foundation concepts of the waterfall model, you will be introduced to incremental, evolutionary, and spiral development models. Agile, adaptive and "extreme" development approaches will also be explored. This course will cover the actual benefits of these models and processes as well as the problems that can arise. You will also study software process improvement and software tailoring and adaptation strategies practiced in industry.
This is the online version of the course. You will be accessing course resources and participating in online discussion forums every week. You will be provided instructions on how to access the course materials and related services before the first week of class.
This course is intended for software developers and software engineering managers wanting to enhance their knowledge and understanding of software engineering principles and best practices.
The chief prerequisite for the course is hands-on work
experience in software development, in particular, software design,
programming, and testing.
Upon completion of this course, each student should be able
to:
· Describe the nature of software engineering and problems typically encountered by software engineering organizations.
· Discuss the various types of work activities that occur and the types of work products that are generated in each phase of the software lifecycle.
· Explain the problems typically encountered in each type of software engineering activity and discuss current best practices for overcoming those problems.
· Compare, contrast, select and adapt various software engineering process models, and explain the strengths and weaknesses of each one.
· Understand and apply software development standards and processes including those for requirements, design, construction, testing, project management and quality assurance.
· Understand software process improvement models and the importance to the profession of applying and improving one’s software engineering competencies.
Dr. Kal Toth is an Associate Professor in the Maseeh College of Engineering and Computer Science at
|
Software Engineering (7th
Ed), Ian Sommerville, Addison-Wesley Pub Co;
ISBN: 0-321-21026-3 |
|
The Mythical Man-Month (Anniversary / 2nd
Ed), Fred Brooks, Addison Wesley, ISBN 0-201-83595-9 |
·
Other papers and articles will be made
available; typically they are provided on-line.
|
Session |
|
|
|
Context and Foundations |
|
1 |
Introduction: Context, Mythical Man-Month, Best and Work Practices |
|
2 |
Software Processes, Process Improvement; Foundation Software
Lifecycles + Examples |
|
3 |
Adaptive, Agile and Extreme Processes; Personal and Team Processes |
|
|
Managing the Software Process |
|
4 |
People and Teams; Software Engineering Ethics |
|
5 |
Software Project Management |
|
6 |
Requirements Engineering |
|
|
Engineering-in Quality |
|
7 |
Architectural Design |
|
8 |
Software Construction |
|
9 |
Software Quality
and Testing |
|
10 |
Software Maintenance; Course Summary and Review |
To succeed in this course, students are expected to devote 9-12 hours of study per week as follows:
·
Review the
required textbooks, lecture notes and reference materials (5 hrs/week)
·
Participate
in class discussions / prepare for assignments (5 hrs/week).
The material in each week builds upon the material covered in previous weeks; therefore, it is essential that you not fall behind in your work. You are expected to be “in class” for all sessions and on time. Every week starts nominally on Monday mornings and ends the following Sunday evening. However, you are encouraged to start reading for the subsequent week on Sundays. Every week you are assigned readings that you must complete early as possible in the week so that you can contribute effectively to that week’s on-line discussions and get maximum benefit from them. Each week the instructor will post the questions for the next week that you are expected to address and then discuss with your fellow students and the instructor. If you fall behind, you may not be able to successfully complete the course. The reading assignments and on-line discussions will require more time than you think. Always contact your professor as soon as possible if you need help or have any questions.
You are expected to complete the readings, including on-line lecture materials, and respond critically to the related questions that have been posted by the instructor. You should endeavor to formulate a first posting that is logically organized, is as meaningful as possible, yet to the point. You are also expected to respond to the postings of at least two fellow students and engage in meaningful discussion with them. The instructor will review the quality of your postings and the degree to which you have engaged in the on-line discussions.
Grades will be allocated as follows:
[10 weekly discussions] x [10 points per week] = [100 points in total]
Before classes start, you will be provided guidance on how to access and sign into our on-line learning system. You will also be given guidance on how to participate in the on-line discussions.
You are encouraged to discuss the course material and the assignments with other students, but all assigned work must be done by individually unless the course professor explicitly tells you otherwise. You are expected to read and review a document detailing the policy on academic integrity which will be posted on-line. Please contact the professor if you have any doubts about the propriety of your course activities.