Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.

Slides:



Advertisements
Similar presentations
Software Life Cycle and Models
Advertisements

Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Software Engineering Saeed Akhtar The University of Lahore Lecture 4 Originally shared for: mashhoood.webs.com.
Software Processes Modified by Randy K. Smith
Software Life-Cycle Models
IS2210: Systems Analysis and Systems Design and Change
CSE 470 : Software Engineering The Software Process.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
1 Teams Xiaojun Qi. 2 Team Organization Suppose that a product can be accomplished by 1 person-year of programming. If this product must be completed.
Introduction to Software Engineering Lecture 3 André van der Hoek.
Introduction to Software Engineering Lecture 4 André van der Hoek.
Chapter 8 Information Systems Development & Acquisition
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Slide 12.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Chapter 6 Systems Development.
Incremental Model Requirements phase Verify Specification phase Verify
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany (
CST 316 Process. Junior Project Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide.
Ch 1: The Scope of Software Engineering
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
CSE 308 Software Engineering Software Engineering Strategies.
Lecture 3 Software Engineering Models (Cont.)
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
1 SWE Introduction to Software Engineering Lecture 4.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Software Engineering process models
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering Zhang Shuang
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Development - Methodologies
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Methodologies and Algorithms
CS 425/625 Software Engineering Software Processes
Software development life cycle models
Software Engineering Lecture 09 & 10.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Software Engineering Lecture 18.
Software life cycle models
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering Lecture 17.
Presentation transcript:

Software Engineering At Glance

Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered –Late –Over budget –With residual faults

Standish Group Data Data on 9236 projects completed in 2004 Stephen R. Schach

Software Engineering A discipline of software production whose aims are to produce a software that is: –Fault-free, –Delivered on time and within budget, –Satisfying client’s needs –Easy to modify when the client’s needs change

Software Lifecycle Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement

Why Maintenance? Bad software is discarded Good software is maintained, for 10, 20 years or more Different types of maintenance –Corrective maintenance –Enhancement Perfective maintenance Adaptive maintenance

Time (= Cost) of Maintenance (a) Between 1976 and 1981 (b) Between 1992 and 1998 Stephen R. Schach

Importance of Early Phases To correct a fault early in the life cycle –Usually just a document needs to be changed To correct a fault late in the life cycle –Change the code and the documentation –Test the change itself –Perform regression testing –Reinstall the product on the client’s computer(s)

Build and Fix Model Problems –No specifications –No design

Waterfall Model Characterized by –Feedback loops –Documentation-driven Advantages –Documentation –Maintenance easier

Rapid Prototyping Model Do not turn the rapid prototype into the product Three Key Points Rapid prototyping may replace the specification phase—never the design phase Comparison: –Waterfall model—try to get it right the first time –Rapid prototyping—frequent change, then discard

Incremental Model Divide Project into Builds Potential Problem -> Build-and-fix danger

Spiral Model Simplified form Waterfall model plus risk analysis preceding each phase

Simplified Spiral Model If all risks cannot be resolved, the project is immediately terminated

Synchronize-and Stabilize Model Microsoft’s life-cycle model Requirements analysis: interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel At the end of the day: synchronize (test and debug) At the end of the build: stabilize (freeze build) Components always work together –Get early insights into the operation of the product

Teams Brooks’s Law –Adding additional programming personnel to a team when a product is late has the effect of making the product even later

Teams Communication paths between 3 computer professionals, and when a 4th professional joins them.

Democratic Team Basic concept is “team of egoless programming”. Group of 10 egoless programmers with no single leader. Every programmer must encourage others to find faults in his/her code. Presence of a fault should not be considered something bad (rather asked for advice.)

Classical Chief Programmer Team Chief Programmer Programming Secretary Back-up Programmer

Modern Programming Team Team Manager Team Leader Programmer Technical management Nontechnical management

Structure for larger projects Team Leader Programmer Technical management Programmer Team Leader Team Leader Project Leader

Decentralized decision-making Team Leader Programmer Technical management Programmer Team Leader Team Leader Project Leader

Synchronize-And-Stabilize Team (Utilized by Microsoft) Each of 3 or 4 sequential builds is constructed by a small parallel teams led by a program manager with 3-8 developers and 3-8 testers, working as one-to-one. Team is provided with specifications of their overall task, then team members are free to design and implement their task. Partially completed components are tested and debugged on a daily basis (Synchronized). Stabilization is performed at the end of each of the builds (build is frozen). Programmers are encouraged to be creative and innovative. (Characteristic of a democratic team.)

Extreme Programming Team Pair programmers: one draws up test cases for task, other implements. If one leaves, other continues with new pair programmer. Working as pair: less experienced one can acquire skills from the more experienced member. All computers are placed in middle of large room: –promotes group ownership of code and positive feature of egoless team.

Testing Two types of testing –Execution-based testing –Nonexecution-based testing Who should perform exectution-based testing? –Programming is constructive –Testing is destructive A successful test finds a fault –So, programmers should not test their own code artifacts