1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Project Management
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
CSE 470 : Software Engineering The Software Process.
CSC 480 Software Engineering
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 501: Software Engineering
CS 501: Software Engineering
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Chapter 1 Principles of Programming and Software Engineering.
© Copyright Eliyahu Brutman Programming Techniques Course.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Life Cycle Model
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
IT Systems Analysis & Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prescriptive Process Models
MCS 270 Spring 2014 Object-Oriented Software Development.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
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.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Design and Development Development Methodoligies Computing Science.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Appendix A: UML Java Software Structures: Designing and Using Data.
Software Engineering Management
Lecture 3 Prescriptive Process Models
Software life cycle models
Software Process Models
Baisc Of Software Testing
Information Systems Development (ISD) Systems Development Life Cycle
Chapter 10: Software Engineering
Presentation transcript:

1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is on controlling the development process to achieve consistently good results We want to: satisfy the client – the person or organization who sponsors the development meet the needs of the user – the people using the software for its intended purpose

Software Development Models

3 Development Models A development life cycle defines a process to be followed during product development Many software development models have been introduced All of them address the following fundamental issues in one way or another: problem analysis design implementation evaluation

4 Problem Analysis We must specify the requirements of the software system Must be based on accurate information Various techniques: discussions and negotiations with the client modeling the problem structure and data flow observation of client activities analysis of existing solutions and systems

5 Design We must specify the solution You wouldn't consider building a bridge without a design Design involves determining: the overall software structure (architecture) the key objects, classes, and their relationships Alternatives should be considered

6 Implementation We must turn the design into functional software Too many people consider this the primary act of software development May involve the reuse of existing software components

7 Evaluation We must verify that the system conforms to the requirements This includes, but goes way beyond, testing code with test cases It is possible to build a system that has no bugs and yet is completely wrong

8 Maintenance After a system is initially developed, it must be maintained This includes: fixing errors making enhancements to meet the changing needs of users The better the development effort, the easier the maintenance tasks will be

9 The Waterfall Model One of the earliest development models Each stage flows into the next Driven by documentation Advantages: Lays out clear milestones and deliverables Has high visibility – managers and clients can see the status Disadvantages: late evaluation not realistic in many situations

10 The waterfall software development model

11 The Spiral Model Developed by Barry Boehm in the mid '80s Embraces a iterative process, where activities are performed over and over again for different aspects of the system Designed to reduce the risks involved Continually refines the requirements Each loop through the spiral is a complete phase of the development

The spiral model of software development

13 The Evolutionary Model Like the spiral model, an evolutionary approach embraces continual refinement Intermediate versions of the system are created for evaluation by both the developers and the client May be more difficult to maintain depending on the attention given to the iterations

14 The evolutionary development model

15 The Unified Modeling Language The Unified Modeling Language (UML) has become a standard notation for software design It is unified in the sense that it is the synthesis of three separate notations It is language independent It includes various types of diagrams which use specific icons and notations However, it is flexible – the details you include in a given diagram depend on what you are trying to capture and communicate

16 UML Class Diagrams UML class diagrams include: The classes used in the system The static relationships among classes The attributes and operations of each class The constraints on the connections among objects An attribute is class level data, including variables and constants An operation is essentially equivalent to a method May include visibility details

17 LibraryItem class diagram

A UML class diagram showing inheritance relationships

19 A UML class diagram showing an association

20 One class shown as an aggregate of other classes

21 A UML diagram showing a class implementing an interface

22 One class indicating its use of another