Software Engineering, CPSC , CPSC , Lecture 2

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Software Development Life-Cycle Models
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Lecture # 2 : Process Models
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
CS487 Software Engineering Omar Aldawud
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
CS 501: Software Engineering
Software Engineering General Project Management Software Requirements
CS 425/625 Software Engineering Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
CIS 321—IS Analysis & Design
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
The Rational Unified Process
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
An Introduction to Software Engineering
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Processes (a)
Chapter 2 SW Process Models
Software Processes.
Introduction to Software Engineering
Chapter 2 – Software Processes
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Presentation transcript:

Software Engineering, CPSC-4360-01, CPSC-5360-01, Lecture 2 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Overview of the Last Lecture Overview of Software Engineering SE definitions Quality of Good Software Overview of Software Process Activities and associated stages Overview of Software Engineering Method Structured Analysis Object-Oriented Method 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Overview of This Lecture Software Development Models Waterfall Model Evolutionary Models Incremental Model Spiral Model Unified Process Overview of UML History 4 + 1 View models Using UML in UP 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Software Development Models High level, abstract representation of software development (software process): Specification. Development. Validation. Evolution. Theoretical framework that is usually extended and adapted in real world application. Two Generic Models: Waterfall Model. Evolutionary Model. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model The earliest software development model (Royce, 1970). 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model Defined a number of phases, e.g., “requirement phase”, “design phase”, etc. The phases correspond to the four stages of the fundamental software process activities (lecture 1). Assumption behind the model: a phase takes place in sequence to another. each activity is completed before the next starts. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model In theory: In practice: Each phase produces documents that are: Verified and validated. Assumed to be complete. Each phase depends on the documents of the previous stage to proceed → it has to wait for the completion of previous stage. In practice: The phases overlap and feedback to each other (see the feedback arrow in the diagram). 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model: Advantages Tangible products (the various documents) at the end of every phases → good to measure progress. Intuitive, sensible and general purpose: Emphasize planning before action. Recommend a top-down perspective. See the big picture before zooming down. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model: Problems Specification is frozen early, because: It is costly and time consuming. Later stages can be carried out. Cannot adapt to changing or incorrect specification: Ignore or code around. Does not meet user requirement. Testing at the very end of development: Work or die situation. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Waterfall Model: Observations Process stages can be iterative. Flexibility in coping with changing specification. Early and frequent validation of software system. The later models are designed in response to these observations. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Evolutionary Model Evolves an initial implementation with user feedback → multiple versions until the final version. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Evolutionary Model Two fundamental types: Exploratory Development: Explores the requirement and delivers a final system. Starts with something that is understood and evolves by adding new features proposed by customers. Throwaway prototyping: Understands the requirement and develop a better requirement definition. Experimenting with poorly understood requirement. Usually develops User Interface (UI) with minor or no functionality. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Evolutionary Model: Advantages Customer involvement in the process: More likely to meet the user requirement. Early and frequent testing: More likely to identify problems. Lower risk. Suitable for small to medium sized system. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Evolutionary Model: Problems The process is intangible: No regular, well-defined deliverables. The process is unpredictable: Hard to manage, e.g., scheduling, workforce allocation, etc. Systems are poorly structured: Continual, unpredictable change tends to corrupt the software structure. Can cause major problems during software evolution. Systems may not even converge to a final version. No strategy to gauge or solve this problem. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Design System Architecture Incremental Model Combine the advantages of Waterfall and Evolutionary Model. Split into increments Design System Architecture Requirements Outline Develop Increment Validate Increment Validate System Integrate Increment Final System 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Incremental Model Each increment is a mini-waterfall. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Incremental Model Prioritizes the services to be provided by the system. Maps these requirements to Increment based on priority. Freezes requirement for the current Increment. Requirements for the later increments can evolve concurrently. Each Increment release is a working system: Allows user to experiment. Can be put into service right away. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Incremental Model: Advantages Early utilization: the 1st increment satisfies the most critical requirement. Early increments can serves as prototypes. Lower risk of overall project failure. Most crucial and basic services are implemented first → receives multiple testing throughout development. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Incremental Model: Problems Hard to map requirement into small increments (< 20,000 lines of code). Hard to define the basic services that are shared by all subsequent increments. Popular variant: AGILE method: eXtreme Programming (XP) Not covered here. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Spiral Model Formalize the Evolutionary Model and avoid the management shortcomings. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Spiral Model Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop = One Iteration = A process phase. Each Loop passes through 4 quadrants (90°): Objective Setting. Risk Assessment and Reduction. Development and Validation. Planning. As loops move away from center → Time and Cost increase. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Spiral Model Risk Driven: Does not prescribe a fix process: Flexible: Explicitly identify risks for each iteration. Address the highest perceived risk. Does not prescribe a fix process: Project Manager chooses the appropriate activity for each iteration base on progress and perceived risk. Flexible: May resemble other process model depends on needs. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Unified Process State of the art process, by learning from the history of previous software development processes. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Unified Process Integrating two seemingly contradicting insights: Definitive activities and deliverables as in the Waterfall Model. Iterative and incremental processes. A project is split into several phases: Each phase is split into several iterations. Each iteration consists of the traditional process activities, known as workflow. Each workflow places different emphasis on the activities depending on the current iteration. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Unified Process: 4 Phases Inception: Plan the project. Evaluate risk. Elaboration: Understand problem domain. Design system architecture. Plan development. Construction: Design, programming and test. Transition: Moving system from developer to user environment. Acceptance testing, release of full system. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Other Process Models Formal System Development: Transforms a mathematical based specification through different representation → executable program. Program correctness is easy to demonstrate, as the transformations preserve the correctness. Reuse-Oriented Development: Concentrates on integrating new system with existing components/systems. Growing rapidly as development cost increase. Aspect-Oriented Development. Agent-Oriented Software Development. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Unified Modeling Language (UML) A visual language to Visualize, construct, document software system. Similar to all other languages, UML has: Grammar: Rules to follow when drawing diagrams. Semantics: The meaning behind each diagram. Used with the Object-Oriented Method. Separates the language from the software process → can be used with other software development model. Currently, this is an industry standard. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

What UML is NOT Not a programming language. Not executable. Exist tools to translate into code (skeleton), but the programmer still need to do the bulk of work. Not a software modeling tool. There are tools that implement the UML standard, e.g., ArgoUML, Visual Paradigm, RationalRose. Not a SE method or software development process. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML: Brief History OO Modeling approach with different strengths and weaknesses grows rapidly. In 1995, There were more than 50 named techniques in the industry. The Object Management Group (OMG) calls for a common modeling approach. Rumbaugh, Booch, and Jacobson (The three amigos) with input from others, formalized the UML standard (UML 1.1) in 1997. Revised in 2003 (UML 1.5): Currently most widely used. Reorganized in 2005 (UML 2.0): A new standard. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML: 4 + 1 View Models A system can be viewed in different ways, usually depends on the role of the viewer. UML supports this by providing the 4 + 1 View Models [Kruchten, 1995]: System Design View Implementation View Use Case View Deployment View Process View 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Use Case View Audience: Usage: System Analyst, End Users and Testers. Describes the system’s external behaviour. Defines the requirements of the system, so it constraints all the other views. Has the central role in driving the development process. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Example of Use Case Elevator System Use case 1: ‘Call Elevator’ is this possible written story: Basic course of events: If the userOutside wants to call lift to go up/down, then he/she presses UpButton/DownButton; Exception 1: If the lift is at the ground floor, then there is no DownButton; Exception 2: If the lift is at the top floor, then there is no UpButton; Use case 2: ‘Move From Inside’ is this written story: The userFromInside can select a floor number (from 1 to the number of floors of the building), or can press “Open”, “Close”. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Design View Audience: Usage: System Analyst and Programmers. Describes the logical structures that support the functional requirements expressed in the use case view. Consists of definitions of program components (classes, data), their behaviour and interactions. Useful as basis for coding. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Implementation View Audience: Usage: System Engineer and Tester. Describes the physical components out of which the system is to be constructed: executable files, libraries of code, databases. Useful for configuration management and system integration. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Process View Audience: Usage: Relatively undeveloped. System Analyst, Programmer and Tester. Usage: Non-Functional requirements. Defines concurrency within the system. Relatively undeveloped. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Deployment View Audience: Usage: Relatively Undeveloped. System Integrator (setup the system at client side). Usage: Non-Functional. Describes physical components that are deployed in the physical environment: Network of computers, connection protocol. Computer specification. Relatively Undeveloped. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML Terminology Model: Model element: Diagram: Refers to the information in a single view, e.g., Use Case Model. OR Refers to all the information about the system, i.e., System Model. Model element: Independent graphical notation element, e.g., a box, an arrow, etc, that has a well defined meaning. Diagram: Graphical presentation of a collection of model elements. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML Diagrams by Views Use case diagram (use case view) Object diagram (use case and design views) Sequence diagram (use case and design views) Collaboration diagram (use case and design views) Class diagram (design view) Statechart diagram (design and process views) Activity diagram (design and process views) Component diagram (implementation view) Deployment diagram (deployment view) 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML Diagrams by Characteristic Software system exhibits two characteristics: Static: Logical Structure, e.g., relationship between classes, attributes of a class, etc. Dynamic: Behavior of the system, e.g., how to respond to a certain event, how to initiate an action, etc. In addition, knowledge about setting up and running the system: Implementation. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML Diagrams by Characteristic Static: Use case diagram Class diagram Dynamic: Object diagram State diagram Activity diagram Sequence diagram Collaboration diagram Implementation: Component diagram Deployment diagram 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Design Model and Code Object structures UML model Source code Models present an abstract view of system. Implementation adds enough detail to make these models executable. specifies Object structures UML model UML Abstract view of Abstract view of Source code Executing program Java specifies Compile time Run time 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UML Models Both documentation (‘UML model’) and ‘Source code’ can be described as compile-time artifacts. ‘Object structures’: Programmers in object-oriented languages (e.g., Java, C++) tend to use abstract models of program execution which talk in terms of objects being created and destroyed as a program runs. ‘Executing program’: describes the effect the program has on computer’s processor and memory when the program is running. The upper and below parts refer to design and programming. The left and right parts refer to compile-time and run-time. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Unified Process and UML UP is Use Case Driven: A systematic utilization of Use Case. UML diagrams are used in the Requirement, Analysis and Design activities in the UP workflow. Because of their history, there is a close fit between UML and the UP. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UP: Requirement and Analysis UP starts with use cases describing how users interact with the system: A domain model records facts about real world entities. UML use case and class diagrams document these. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UP: Analysis and Design Analysis and Design usually overlap in UP as the same diagrams are used. Proceed by Realization and Refinement. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UP: Realization and Refinement Use case realizations indicate how the functionality will be supported by the system. Documented in UML interaction diagrams, e.g., Sequence Diagram, Collaboration Diagram. This causes the domain model to be refined into a more implementation-oriented class diagram. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

UP: Specifying Behavior UML provides State Chart to document the behavior of classes. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Summary (1) Waterfall Process Model: Development activities in a linear fashion. Requirements to freeze very early in development. Testing very late in the process. Evolutionary Process Model in response to iterative nature of development: Use of prototyping. Requirements evolve with users’ feedback. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Summary (2) Incremental Process Model in response to incremental nature of development: Delivery in increments. Allows prioritizing risks in development. Allows different process models for different increments. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Summary (3) Spiral Model: Unified Process: Addresses incremental and iterative nature of development. Allows risk evaluation at every phase. Expensive process. Allows use of multiple process models. Unified Process: Incorporates best industry practices. Extensive use of UML models. Allows iteration of workflows. 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Summary Software Development Models Overview of UML Waterfall Model Evolutionary Models Incremental Model Spiral Model Unified Process Overview of UML History 4 + 1 View models Using UML in UP 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Reading Suggestions [Wadhwa, Andrei, Soo; 2007], Chapter 2 [Sommerville; 2008], Chapters 1 and 4 [Priestley; 2004], Chapter 3 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Coming up next Use Case Modeling, Domain Modeling: [Wadhwa, Andrei, Soo; 2007], Chapters 2 and 3 [Priestley; 2004], Chapter 4 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2

Thank you for your attention! Questions? 4/13/2017 CPSC-4360-01, CPSC-5360-01, Lecture 2