SE 532– Software Engineering
Processes
COURSE DESCRIPTION:
This course covers all the latest developments in
software engineering. Detailed explanation of the software engineering activities of specification,
design, development, verification and validation and management and how these
important topics work together. Different models of the software engineering
process are compared and contrasted. This course provides
an overview of Software Design Patterns and UML and gives explanation about how they can facilitate the overall
development process.
RELATION TO THE COLLEGE STATEMENT OF MISSION:
This course provides students with knowledge
of software engineering principles and best practices. It advances the
mission of Olivet University by equipping students with the practical skills to
communicate the Gospel through software development – which is particularly
important for effectiveness in the ‘network generation.’
COURSE OBJECTIVES:
Upon
completing this course, a student should be able to:
(1) Understand
the main technical activities associated with software engineering:
requirements specification, design, implementation, testing and maintenance.
(2) Understand the importance
of quality assurance, human factors, professional issues and project management
in software development.
(3) Understand
common design patterns
(4) Be able to identify appropriate patterns for
design problems
(5) Analyze and design the object-oriented concepts
of a software using Unified Modeling Language (UML)
COURSE
REQUIREMENTS:
A. Reading:
Carefully
read all the assigned reading from the textbook.
B. Exams:
The course
will have one midterm and one final.
COURSE TEXTBOOKS:
Required
Textbooks:
-
Object-Oriented Software Engineering:
Using UML, Patterns and Java, Second Edition by Bernd
Bruegge (Author), Allen
H. Dutoit (Author)
Optional
Textbooks:
-
Object-Oriented Software Engineering:
Practical Software Development using UML and Java by Timothy
Lethbridge (Author), Robert
Laganiere (Author)
-
Software Engineering: (8th Edition)
(International Computer Science Series)
by Ian Sommerville (Author)
by Ian Sommerville (Author)
-
The Mythical Man-Month: Essays on
Software Engineering, 20th Anniversary Edition
by Frederick
P. Brooks (Author)
-
Design Patterns Explained: A New
Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series) by Alan
Shalloway (Author), James
Trott (Author)
-
UML Distilled: A Brief Guide to the Standard Object Modeling Language
(3rd Edition) (The Addison-Wesley Object Technology Series) by Martin
Fowler (Author)
Team Projects
Class will be divided into 4-6 person teams. Each team will be provided a set of high-level requirements to be implemented, integrated, and tested. Each team’s requirements will be implemented using a selected set of the software engineering processes covered in the course. Activities will begin with project planning and culminate in a review of the team results. Each team will be required to maintain a project notebook and provide three presentations during the development of the project. The first two presentations will review the objectives and architecture of the selected software system. The final review will compare actual results to initial plans and then develop a set of lessons learned for future projects (what worked well, what did not work well, and for elements that did not work well, recommendations for improving the process).
Class will be divided into 4-6 person teams. Each team will be provided a set of high-level requirements to be implemented, integrated, and tested. Each team’s requirements will be implemented using a selected set of the software engineering processes covered in the course. Activities will begin with project planning and culminate in a review of the team results. Each team will be required to maintain a project notebook and provide three presentations during the development of the project. The first two presentations will review the objectives and architecture of the selected software system. The final review will compare actual results to initial plans and then develop a set of lessons learned for future projects (what worked well, what did not work well, and for elements that did not work well, recommendations for improving the process).
Teams may define their own project (subject to instructor approval) or
select a project from a list provided by the instructor. Teams will also be allowed to select their
own development environment and languages, but must be able to demonstrate the
application and provide access to the source code to the instructor (e.g.,
students may not use employer tools/environments that are not accessible to the
instructor).
Grading
·
First Midterm (20%)
·
Second Midterm (20%)
·
Third Midterm (20%)
|
2.
Team work: 40%
-
Each of 3 presentation/notebook
updates (10%)
-
Final project notebook (10%)
|
Sample Team Project:
Creation of
multi-user, Web-based system(ARENA) for organizing and conducting tournaments.
ARENA is game independent in the sense that organizers can adapt a new game to
the ARENA game interface, upload it to the ARENA server, and immediately
announce and conduct tournaments with players and spectators, located anywhere
on the Internet.
Organizers
can also define new tournament styles describing how players are mapped to a
set of matches and how to compute an overall ranking of players by adding up
their victories and losses(hence, figuring out who won the tournament).To
recoup their operational costs,
organizers can also invite potential sponsors to display advertisement banners
during games.
After each
lecture we will discuss issues, design decisions and trade-offs specific to the
lecture in the context of ARENA and we’ll emphasize the dependencies with
previous lectures.
COURSE SCHEDULE:
Week Topic Reading
Week 1 Introduction
to Software Engineering Ch
1 - from required book definition, concepts,
development activities,
managing
software development,ARENA case study,
further
readings,exercises
Week 2 Modelling
with UML Ch 2
introduction,diagram
types,modeling concepts,
further readings, exercises
Week 3 Project organization and
communication Ch 3
introduction,organization
concepts,
communication
concepts,organizational activities,
further
readings, exercises
Week 4 Requirements definition Ch
4
introduction,
concepts, activities, managing
requirements
elicitation, further readings,
exercises
Week 5 Analysis Ch
5
introduction,
concepts, activities, managing
analysis,
ARENA case study , further readings,
exercises
Week 6 System design - decomposing the
system Ch 6-Ch 7
and addressing design goals
introduction,
concepts, activities, managing
system
design, ARENA case study ,
further
readings, exercises
Week 7 Object design- reusing patterns
solutions Ch 8
introduction,
concepts, activities, managing
resuse,
ARENA case study , further readings,
exercises
Week 8 Object design- specifying interfaces Ch 9
introduction,
concepts, activities, managing
object
design , ARENA case study ,
further
readings, exercises
Week 9 Mapping models to code Ch 10
introduction,
concepts, activities, managing
implemenation,
ARENA case study , further readings,
exercises
Week 10 Testing Ch
11
introduction,
concepts, activities, managing
testing,
further readings, exercises
Week 11 Rationale Management Ch
12
introduction,
concepts, activities – from issues
to
decisions, managing rationale
further
readings,exercises
Week 12 Configuration Management Ch 13
introduction,
concepts, activities,
managing configuration management ,
further
readings, exercises
Week 13 Project Management Ch
14
introduction,
concepts, activities,
further
readings, exercises
Week 14 Software Life Cycle Ch
15
introduction,
IEE1074 standart,
life
cycle models,further readings, exercises
Week 15 Putting It All Together Ch
16
introduction,project environment ,
methodology issues,spectrum of
methodologies,
case studies,futher reading, exercises
No comments:
Post a Comment