DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES
COSC 612/614: SOFTWARE ENGINEERING I&II
Professor A. Behforooz
Office: 316L Stephens Hall Phone: 410-830-3035 Fax: 410-830-3868 E-mail: behforooz-a@toe.towson.edu alib@midget.towson.edu
First semester of a two
semester sequence
dealing with the application of formal software engineering principles and practices to the development of embedded, computer based systems. The presentation of material is largely
qualitative and develops a structure for the second semester which emphasizes quantitative aspects of Software Engineering.
The second semester of the
software
engineering sequence will emphasis on: 1) formal processes leading to development requirements and specifications that will be turned over to coders; and 2) quantitative measures of usef
ul software attributes; and 3) the "support disciplines" such as human factors, test and integration, reliability, real-time software, quality assurance, logistics and their contributions to a successful software development cycle. The specific product
s expected from these areas will be discussed as will their influence on software development. Finally the complete design and test process will be studied in detail including a critical evaluation of current design procedures and the common thread that b
inds them.
For the first semester the objectives are to develop a sense of how the software engineering discipline fits into the overall system development process and identify specific products, interfaces, and responsibilities of contributing disciplines and organ
izations. Stress will be placed on identification and description of the many software and engineering fields that are directly or indirectly involved in a successful software system development. A comprehensive scription of the software engineering proce
ss will be presented along with a discussion of the approaches, methodologies and tools available to the practicing software engineer.
For the second semester the major objective is to explore those software attributes that can be quantified and used as metrics in the treatment of software products. Specifically: software reliability models; software resource estimation models (Cost of
development deployment and maintenance in effort and support facilities); schedule estimation and planning; economic justification studies and strategies; and software quality measures are among software metrics that we will explore. A second objective
is to present a comprehensive treatment of software system test and integration approaches using a real-world application project.
A. Behforooz, F. J. Hudson, Fundamentals of Software
Engineering, Oxford University Press, 1996.
Students will be expected to gain a comprehensive understanding of the major elements of the software and system development life cycle of a "typical" embedded software system development. Students will develop a balanced, mature outlook relative to the o
les,
responsibilities and products of the many participants in such a development process, with emphasis on the role and responsibilities of software engineers.
It is expected that students will gain a broader appreciation of the importance of software and software engineering practice in an embedded computer system development. It is also expected
that students understand and appreciate the complex interrelationships that exist among the many technical and management disciplines. Students must develop, through team-work on class project, an appreciation for the team-work required to produce a "goo
d" software system.
Students will be encouraged to commit to two consecutive semesters in order to maintain project continuity. However, the projects will be designed to accommodate student turnover by establishing a review at the close of the first semester at a logical pr
oject hand-off point.
The objective of the project is to apply the methods and techniques developed in lectures to "real-world" situations to accentuate some of the application problems that must be resolved in order to bridge theory to practice.
Course Description (COSC 612):
Course Description (COSC 614):
Course Objectives (COSC 612)
Course Objectives (COSC 614)
Textbook
Detailed Topics (COSC 612)
OVERVIEW OF SYSTEM AND SOFTWARE DEVELOPMENT LIFE CYCLES ( 1
week)
PROJECT DEFINITION (1 week)
TECHNICAL PLANNING (1 week)
SOFTWARE SPECIFICATIONS (1 week)
SOFTWARE SPECIFICATION TOOLS (2 weeks)
SOFTWARE DEVELOPMENT ENVIRONMENT (1 week)
SOFTWARE DESIGN (1 week)
OBJECT-ORIENTED ANALYSIS AND DESIGN (2 weeks)
FUNDAMENTALS OF CODING (1 week)
SOFTWARE SYSTEM TEST AND INTEGRATION (1 week)
(Possible start of COSC 614) MODULE LEVEL TESTING (1weeks)
DEBUGGING (1 week)
SOFTWARE MAINTENANCE AND MAINTAINABILITY (1 week)
SOFTWARE ATTRIBUTES AND THEIR ESTIMATION (1 weeks)
SOFTWARE DEVELOPMENT RESOURCE ESTIMATION (1 week)
SOFTWARE DEVELOPMENT RISK ASSESSMENT AND CONTAINMENT (1
week)
RELIABILITY (2 weeks)
SOFTWARE QUALITY AND QUALITY ASSURANCE (1 week)
REAL-TIME SOFTWARE (1 week)
HUMAN FACTORS IN SOFTWARE ENGINEERING (1 week)
COMMUNICATION SKILLS (1 week)
(class project is used)COST BENEFIT ANALYSIS AND TRADE-OFFS
(class project is used ) REVIEWS ( 1 week)
(class project is used)PROJECT PRESENTATIONS AND MEETINGS (2 weeks)
Course Requirements
Project (COSC 612 & 614)
STUDENT MUST WORK ON THE PROJECT AS A TEAM OF TWO
As a direct adjunct to this course, class project will be conducted using students in the role of software engineers, programmers and testers. The project will follow an accepted embedded computer system development processes. The project source data will
be drawn from either a contemporary real-world project or from a scripted case study using an already completed "real-world" project. The project will be initiated based on existing system level functional and performance requirements documents, operatio
nal description documents, system design descriptions and rationale documents and system requirement allocation to software. The project team will be expected to read the documentation, perform the technical work and produce the following documents:
COSC 612 Project
COSC 614 Project
(the above documents are Due by midterm)
(Unit tested source code due end of April)
(Due during Final week)Requirements (COSC 612)
Exams 70% Project 30% Requirements (COSC 614)
Exams 50% Project 50%