College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

Lecture # 2 : Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 The Software Process
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
A GOAL-BASED FRAMEWORK FOR SOFTWARE MEASUREMENT
CS487 Software Engineering Omar Aldawud
SOFTWARE ENGINEERING LECTURE-3 CSE-477.
CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Capability Maturity Model
Chapter : Software Process
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
Capability Maturity Model. Reflection Have you ever been a part of, or observed, a “difficult” software development effort? How did the difficulty surface?
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
N By: Md Rezaul Huda Reza n
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
J. R. Burns, Texas Tech University Capability Maturity Model -- CMM n Developed by the Software Engineering Institute (SEI) in 1989 –SEI is a spinoff.
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Lecture # 17
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
An Introduction to Software Engineering. What is Software?
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
University of Sunderland COM369 Unit 6 COM369 Project Quality Unit 6.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
An Introduction to Software Engineering Support Lecture.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Engineering Introduction.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
SOFTWARE PROCESS IMPROVEMENT
Software Engineering (CSI 321) Software Process: A Generic View 1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Advanced Software Engineering Dr. Cheng
CS4311 Spring 2011 Process Improvement Dr
Software Engineering (CSI 321)
CS701 SOFTWARE ENGINEERING
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering (CSE 314)
Overview: Software and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Engineering Lecture 16.
Software Engineering I
Capability Maturity Model
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Capability Maturity Model
Software Verification and Validation
Presentation transcript:

College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)

What is Software? A set of instructions that are designed to accomplish a desired task or function. A set of instructions that are designed to accomplish a desired task or function. Software Includes:  Programs  Documents  Data…

Software Characteristics… Software is engineered or developed. Software is engineered or developed. Software does not wear out, but it deteriorates. Software does not wear out, but it deteriorates. Software is still mostly custom built. Software is still mostly custom built.

Wear vs. Deterioration

The Cost of Change Definition Development After release

Software Applications system software system software real-time software real-time software business software business software engineering/scientific software engineering/scientific software embedded software embedded software PC software PC software AI software AI software WebApps (Web applications) WebApps (Web applications)

Software Engineering Classic Definition (1969) Classic Definition (1969) “ The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” “Software Engineering: (1) The application of a systematic, disciplines, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. (2) The study of approaches as in (1).”

Software Engineering & Problem Solving COMPUTER SCIENCE CUSTOMER SOFTWARE ENGINEERING Theories Computer Functions Problem Tools and Techniques to Solve Problems

Characteristics of an Engineering Process Predictable Results Predictable Results  Product will be produced.  Production/release time is known in advance  If results were predictable we would not see V1.0.1, V 1.0.2, etc. (Are these are bug fix releases..?) Measurable Progress Measurable Progress  Product goes through well defined phases  Engineers can reliably measure progress  Metrics can be defined to provide accurate indication of progress and cost.

Characteristics of an Engineering Process Reaction to Change Reaction to Change  The product is well planned and documented  Changes in requirements is well anticipated  Impact of change more readily assessed.

The Process

Software Engineering A Layered Technology Software Engineering a “quality” focus process model methods tools

Software Process Definition Definition  The activities, techniques, tools, and individuals to produce software.

Process Principles Prescribes all major activities Prescribes all major activities Uses resources, within a set of constraints, to produce intermediate and final products. Uses resources, within a set of constraints, to produce intermediate and final products. May be composed of sub-processes. May be composed of sub-processes. Each activity has entry and exit criteria. Each activity has entry and exit criteria. Activities are organized in a sequence. Activities are organized in a sequence. Has a set of guiding principles to explain goals. Has a set of guiding principles to explain goals. Constraints may apply to activity, resource or product. Constraints may apply to activity, resource or product.

Process Assessment Model: Capability Maturity Model (CMM) Developed by SEI – (Software Engineering Institute at Carnegie Mellon) Five Process Maturity Levels Five Process Maturity Levels  Level 1: Initial- ad hoc: few processes are established ad hoc: few processes are established  Level 2: Repeatable – Basic processes are defined to repeat earlier successes on projects  Level 3: Defined processes documented, standardized,and integrated into the organization

CMM Cont.  Level 4: Managed – detailed software processes measures are established. detailed software processes measures are established.  Level 5: Optimizing- Continues process improvement is established by quantitative feedback. Continues process improvement is established by quantitative feedback.

Software Process Models Strategy need to be developed to solve an actual problem. Strategy need to be developed to solve an actual problem. This strategy encompasses: Process, Methods, and tools. This strategy encompasses: Process, Methods, and tools. This strategy is known as a Process Model This strategy is known as a Process Model The process model is chosen based on the following: The process model is chosen based on the following:  Nature of the project  Methods and tools to be used  Deliverables that are required

Process as Problem Solving software Development can be characterized as a problem solving process

Variations in the Process Regardless of exact procedure, all broadly follow the these phases of SW Life Cycle Regardless of exact procedure, all broadly follow the these phases of SW Life Cycle  Requirements phase  Specification phase  Design phase  Implementation phase  Testing phase  Maintenance phase Some use different terms – some combine phases Some use different terms – some combine phases

Software Life-Cycle Models Definition Definition The series of steps through which the product progressesThe series of steps through which the product progresses The model specifies The model specifies  the various phases of the process  e.g., requirements, specification, design…  the order in which they are carried out

Software Lifecycle Models  Build-and-fix  develop systems  without specs or design  modify until customer is satisfied  Why doesn’t build-and-fix scale?  changes during maintenance  most expensive!

Lifecycle Models Waterfall model - Also known as Linear sequential model Requirements Phase Specification Phase Design Phase Implementation & Integration Phase Requirements Description Specification Design Docs Product

Drawbacks of Waterfall Model Document-driven model Document-driven model  customers cannot understand them …  imagine an architect just showing you a textual spec!  first time client sees a working product is after it has been coded. Problems here?  leads to products that don’t meet customers needs  Assumes feasibility before implementation  re-design is problematic  works best when you know what you’re doing  when requirements are stable & problem is well- known

The Primary Goal: High Quality Software Critical Quality Attributes Critical Quality Attributes  Reliability  Maintainability  Dependability  Efficiency  Usability Other Attributes Other Attributes  Completeness  Compatibility  Portability  Scalability  Robustness  Testability  Reusability……

Questions…? What is next..? Deliverable # 1