CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump Grading Midterm Exam. Final Exam. 50% 30% Sun Sept 29 8:00-11:00 Project & Presentation 10% Team project (20%) Individual research & presentation (10%) Homework & Other Assignments 10% Textbook Pressman, Roger S. Software Engineering: A Practitioner’s Approach. 5th Edition. McGrawHill Companies, Inc. New York, NY 10020, 2001. Course Outline Part One – The Product and Process CHAPTER 1 The Product CHAPTER 2 The Process Part Two – Managing Software Project CHAPTER 3 Project Management Concepts CHAPTER 4 Software Process and Project Metrics CHAPTER 5 Software Project Planning Course Outline (Cont’d) Risk Analysis and Management Project Scheduling and Tracking Software Quality Assurance Software Configuration Management Part Three – Conventional Methods for Software Engineering CHAPTER 10 System Engineering CHAPTER 11 Analysis Concepts and Principles CHAPTER 6 CHAPTER 7 CHAPTER 8 CHAPTER 9 Course Outline (Cont’d) CHAPTER 12 Analysis Modeling CHAPTER 13 Design Concepts and Principles CHAPTER 14 Architectural Design CHAPTER 15 User Interface Design CHAPTER 16 Component-Level Design CHAPTER 17 Software Testing Techniques CHAPTER 18 Software Testing Strategies CHAPTER 19 Technical Metrics for Software Sample Topics for Individual Research Business Process Engineering COCOMO and COCOMO II Model Alternative Analysis Methods DSSD (Data Structured Systems Development ) JSD (Jackson System Development) SADT (Structured analysis and design technique) Interface Design Guidelines Sample Topics for Individual Research (Cont’d) ISO 9000 for Software CASE Tools Reviewing OOA and OOD Models Component-based Software Engineering Process Improvement and SEI Capability Maturity Model (CMM) PSP (Personal Software Process) TSM (Team Software Process) Sample Topics for Individual Research (Cont’d) Object-Oriented Testing Assessing Quality of Web Applications Model-Based (MBASE) Architecture & Software Engineering Object-oriented Software Development with UML Adaptable Process Model (APM) Guidelines for Individual Research Topic submission date on Thurs 13/6. Final Report must contain a minimum of 3 references. Presentation dates will be arranged after midterm exam. Guidelines for Team Project 2 members per team Project Topic Submission Date on Thurs 13/6. Project Proposal Submission Date on Tue 18/6. Progress report required (will notify ahead of time). Final Report must be submitted prior to Final Exam date. Presentation date will be arranged after midterm exam. Chapter 1 Product Software Engineering The technology encompasses a process, a set of methods, and an array of tools that we call software engineering. Roles of Software A Product The vehicle for delivering a product, such as Control computer (OS) Communication Tools Software delivers “information” Questions from an Industry Perspective Why does it take so long to get software finished? Why are development costs so high? Why can’t we find all the errors before we give the software to customers? Why do we continue to have difficulty in measuring progress as software being developed? An Aging Software Plant Software, produced over 20 years ago and modified over 40 times, was barely maintainable. No one could understand the internal structure of old programs. Embedded system (traffic, power plants, factories) was unable to removed or replaced despite malfunctions. Software Competitiveness Cost Timeliness Quality Why India? What is Software? Instructions (computer programs) that when executed provide desired function and performance. Data structures that enable the programs to adequately manipulate information, and Documents that describe the operation and use of programs. Software Characteristics 1. 2. 3. Software is developed or engineered, it is not manufactured in the classical sense. Software does not “wear out”. Although the industry is moving toward component-based assembly, most software continues to be custom built. Wear vs. Deterioration Software Applications Information content refers to the meaning and form of incoming and outgoing information. For example, use highly structured input data (a database) and produce formatted reports. Software Applications System Software: a collection of programs written to service other programs. Compilers, editors, and file management utilities. Operating system components, drivers, telecommunications processors. Software Applications Real-Time Software: Software that monitors/analyzes/control real world events as they occur. Elements include: Data gathering components Analysis component Control/output component Monitoring component Software Applications Business Software: Payroll Accounts receivable/payable Inventory MIS Facilitate business operations or management decision making Interactive client/server computing (point-of-sale transaction processing Software Applications Engineering and Scientific Software: CAD System simulation Interactive applications Embedded Software: Embedded software resided in ROM Software Applications Personal Computer Software Web-based Software AI Software: Expert Systems Knowledge-base Systems Pattern recognition (image and voice) Artificial neural networks Software Myths Management Myths Customer Myths Practitioner’s Myths Software In brief, software is composed of Programs Data Documents The intent of software engineering is to provide a framework for building software with higher quality. The Cost of Change Software Poses Challenges How do we ensure the quality of the software that we produce? How do we meet growing demand and still maintain budget control? How do we upgrade an aging "software plant?" How do we avoid disastrous time delays? How do we successfully institute new software technologies?